Home > Back-end >  look for id in multiple condition or in postgresql
look for id in multiple condition or in postgresql

Time:05-25

I have a query like this:

select a.*, mw.nama_pro, mw.kode_pro, mw.nama_kab, mw.kode_kab, mw.nama_kec, mw.kode_kec, mw.nama_kel, mw.kode_kel
from anggota a
left join matview_wilayah mw on mw.id = a.id_wilayah
join pekerjaan p on p.id = a.status_pekerjaan
where a.id_parpol = 7
and mw.id_pro = a.id_wilayah 
or a.nama like '%Anggota%'

but what appears the data is like this :

 ---- ----------- ----------- 
| id | id_parpol | nama      |
 ---- ----------- ----------- 
| 21 | 7         | Anggota 1 |
| 22 | 7         | Anggota 2 |
| 23 | 7         | Anggota 3 |
| 31 | 8         | Anggota 6 |
| 32 | 8         | Anggota 7 |
| 52 | 9         | Anggota 9 |
 ---- ----------- ----------- 

The data output I expected appears like this :

 ---- ----------- ----------- 
| id | id_parpol | nama      |
 ---- ----------- ----------- 
| 21 | 7         | Anggota 1 |
| 22 | 7         | Anggota 2 |
| 23 | 7         | Anggota 3 |
 ---- ----------- ----------- 

CodePudding user response:

Just group the last 2 statements of the where:

select a.*, mw.nama_pro, mw.kode_pro, mw.nama_kab, mw.kode_kab, mw.nama_kec, mw.kode_kec, mw.nama_kel, mw.kode_kel
from anggota a
left join matview_wilayah mw on mw.id = a.id_wilayah
join pekerjaan p on p.id = a.status_pekerjaan
where a.id_parpol = 7
and (mw.id_pro = a.id_wilayah 
or a.nama like '%Anggota%')

  • Related