0
我試圖創建層次結果集。在表格中記錄樣本記錄。 在下面的輸出中,我沒有第二列(根)的父母姓名,同樣,我有22位父母(根!沒有超級父母)。MYSQL沒有重複行 - 與多個父母的多對多的層次結構
Child Name Parent
-----------------
1 A 1-3
2 B 1-3
3 C 1-3
1-3 D 1-10
3-5 E 1-10
6-10 F 1-10
1-10 G 1-100
201 w 200-210
202 x 200-210
203 y 200-210
200-210 z 200-300
我的代碼:在這裏我寫了3次Mysql連接查詢以獲得4個關卡。
SELECT
t1.Child ,
t1.Name ,
t2.Child ,
t2.Name ,
t3.Child ,
t3.Name,
t4.Child ,
t4.Name
FROM
code t1
left join code t2 on t1.Child = t2.Parent
left join code t3 on t2.Child = t3.Parent
left join code t4 on t3.Child = t4.Parent
輸出:
t1.Child t1.Name t2.Child t2.Name t3.Child t3.Name t4.Child t4.Name
-------------------------------------------------------------------
1-100 root 1-10 G 1-3 D 1 A
1-100 root 1-10 G 1-3 D 1 B
1-100 root 1-10 G 1-3 D 1 C
1-10 G 1-3 D 1 A
1-10 G 1-3 D 1 B
1-10 G 1-3 D 1 C
1-3 D 1 A
1-3 D 1 B
1-3 D 1 C
200-300 root 200-210 z 201 w
200-300 root 200-210 z 202 x
200-300 root 200-210 z 203 y
200-210 z 201 w
200-210 z 202 x
200-210 z 203 y
我只是想行1至3 & 10 - 12,
我正在尋找像
大PARENTS1(根行)給Grand Children's
Grand Parents2(Root)to Grand Children's
而不是線4 - 9 & 13 - 15,因爲信息是重複我山坳3,4,5,6有這個信息已經....等
我不想再行要複製
除外輸出:
t1.Child t1.Name t2.Child t2.Name t3.Child t3.Name t4.Child t4.Name
-------------------------------------------------------------------
1-100 root 1-10 G 1-3 D 1 A
1-100 root 1-10 G 1-3 D 1 B
1-100 root 1-10 G 1-3 D 1 C
200-300 root 200-210 z 201 w
200-300 root 200-210 z 202 x
200-300 root 200-210 z 203 y
感謝
戈登,請解釋一下where子句不存在的部分。 非常感謝 – max
@max請閱讀[文檔](http://dev.mysql.com/doc/refman/5.7/en/exists-and-not-exists-subqueries.html) –
@max。 。 。 where子句確保所選行僅用於沒有父對象的t1記錄。 –