这是我的表格,与依赖
的关系表: data_kel
+---------+--------------+
| alamat | nomor_kk |
+---------+--------------+
| tes1 | 11 |
+---------+--------------+
| tes2 | 12 |
+---------+--------------+
| tes3 | 12 |
+---------++-------------+
| tes4 | 12 |
+---------+--------------+
| tes5 | 11 |
+---------+--------------+
表: data_mustahik
+---------+---------------+------------+
| nama | nomor_kk | kepala_kel |
+---------+---------------+------------+
| 11 | 11 | 1 |
+---------+--------------+-------------+
| 12 | 12 | 1 |
+---------+--------------+-------------+
| 13 | 12 | 0 |
+---------++---------------+-----------+
| 14 | 12 | 0 |
+---------+--------------+-------------+
| 15 | 11 | 0 |
+---------+--------------+-------------+
表: data_survey
+--------------+---------------+
| id_survey | nomor_kk |
+--------------+---------------+
| 21 | 11 |
+--------------+---------------+
| 22 | 12 |
+--------------+---------------+
| 23 | 12 |
+--------------+---------------+
| 24 | 12 |
+--------------+---------------+
| 25 | 11 |
+--------------+---------------+
表: rekapitulasi_kelayakan
+--------------+---------------+
| id_srv | kelayakan |
+--------------+---------------+
| 21 | layak |
+--------------+---------------+
| 22 | tidak |
+--------------+---------------+
| 23 | - |
+--------------+---------------+
| 24 | - |
+--------------+---------------+
| 25 | - |
+--------------+---------------+
现在输出(错误)
11 | 11 | Layak
11 | 11 | Layak
12 | 12 | Tidak
12 | 12 | Tidak
12 | 12 | Tidak
13 | 12 | Tidak
13 | 12 | Tidak
13 | 12 | Tidak
14 | 12 | Tidak
14 | 12 | Tidak
14 | 12 | Tidak
15 | 11 | Layak
15 | 11 | Layak
我想输出(右)
11 | 11 | Layak
12 | 12 | Tidak
13 | 12 | Layak
14 | 12 | Layak
15 | 11 | Tidak
我坚持要查询这个..其实这个查询这么久..它只是简单.. 如果我使用组..输出只有一个不出现..
i want to grouping
nomor_kk 11 with nama 11,15 => layak
nomor_kk 12 with nama 12,13,14 => tidak
我的查询是
SELECT * FROM data_mustahik dk
INNER JOIN data_survey ds
ON dk.nomor_kk=ds.nomor_kk
INNER JOIN rekapitulasi_kelayakan rk
ON ds.id_survey=rkid_srv
查询
CREATE TABLE data_kel
(`alamat` varchar(5), `nomor_kk` int)
;
INSERT INTO data_kel
(`alamat` , `nomor_kk`)
VALUES
('tes1', 11),
('tes2', 12),
('tes3', 12),
('tes4', 12),
('tes5', 11)
;
CREATE TABLE data_survey
(`id_survey` int, `nomor_kk` int)
;
INSERT INTO data_survey
(`id_survey`, `nomor_kk`)
VALUES
(21, 11),
(22, 12),
(23, 12),
(24, 12),
(25, 11)
;
CREATE TABLE rekapitulasi_kelayakan
(`id_srv` int, `kelayakan` varchar(5))
;
INSERT INTO rekapitulasi_kelayakan
(`id_srv`, `kelayakan`)
VALUES
(21, 'layak'),
(22, 'tidak'),
(23, '-'),
(24, '-'),
(25, '-')
;
CREATE TABLE data_mustahik
(`nama` int, `nomor_kk` int, `kepala_kel` int)
;
INSERT INTO data_mustahik
(`nama`, `nomor_kk`, `kepala_kel`)
VALUES
(11, 11, 1),
(12, 12, 1),
(13, 12, 0),
(14, 12, 0),
(15, 11, 0)
;
查询2
SELECT dk.nama,dl.nomor_kk,rk.kelayakan FROM data_mustahik dk
INNER JOIN data_kel dl
ON dk.nomor_kk=dl.nomor_kk
INNER JOIN data_survey ds
ON dk.nomor_kk=ds.nomor_kk
INNER JOIN rekapitulasi_kelayakan rk
ON ds.id_survey=rk.id_srv
WHERE rk.kelayakan != '-'
order by nama
答案 0 :(得分:1)
您的第二个查询正确输出13行。要获得所需的输出,您需要将连接删除到data_kel(似乎不需要)或者从此表中决定您需要哪个重复的data_kel.nomor_kk或使用像这样的distinct子句
/MT