2016-12-01 123 views
0

这是我TABEL,与依赖如何让mysql数据库的foreach

表关系: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   | -    | 
+--------------+---------------+ 

OUTPUT NOW(FALSE)

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

这是您第三次发布此问题。你应该扩展你的结果集如何实现。 –

+0

YESSS ..我想问问..在MySQL ..我们可以像foearch – TARA

+2

是查询工作,并加入可能是去,但“我想分组 nomor_kk 11 NAMA 11,15 => layak nomor_kk 12路与纳马12,13,14 => tidak需要更多的解释。“ –

回答

1

你的第二查询正确地输出13行。为了让您所需的输出,你要么需要删除加入到data_kel(这似乎并不需要),或决定从该表中你想重复data_kel.nomor_kk的该公司,或使用不同的条款,像这样

SELECT distinct 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

谢谢youuu亚..只是截然不同 – TARA