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%')