我的問題是下一個問題。MySQL從同一組外部表中獲得行對
我有3個表:人,車和驅動:
人:
Id Name
1 | Tom
2 | James
3 | Charles
4 | Eric
5 | Thomas
6 | Robert
7 | Kim
8 | Ellias
汽車:
Id Name
1 | Ford
2 | Nissan
3 | Hyundai
驅動:
PID CID (People ID & Car ID)
1 | 1
2 | 1
5 | 1
5 | 2
6 | 1
6 | 2
7 | 1
7 | 2
7 | 3
8 | 1
我想要檢索駕車的人同一套汽車。 我的意思是:如果湯姆只駕駛福特和詹姆斯駕駛也只是福特,我想把這對湯姆/詹姆斯作爲結果返回。此外,我想包括沒有駕駛任何車的人(即查爾斯/埃裏克(0輛車都驅動))。
與示例中的查詢結果上面應該返回兩列每個結果,例如:
Name Name
Tom | James (Only Ford)
Tom | Ellias (Only Ford)
James | Ellias (Only Ford)
Charles | Eric (None BOTH)
Thomas | Robert (Ford and Nissan BOTH)
還要注意,金帶動福特,日產和現代。所以Kim不會與任何人配對。湯姆詹姆斯和埃利亞斯都是福特駕駛,所以他們與自己配對。
我試過笛卡爾產品和關係部門,但我沒有找到解決方案。如果有人能夠幫助我至少有一個提示,我會很感激。謝謝!
您可以在樣本數據和正確的預期結果中添加Charles和Eric。另外根據'Drived'表中的第三條記錄,'Tom'開車'日產'以及爲什麼你提到*湯姆驅車只福特* –
固定並添加整個示例 – ricaso
試試這個SELECT GROUP_CONCAT(p.name)作爲人,c.name從驅動爲d加入人作爲p上p.id = d.PID加入汽車作爲c上c.id = d.CID組d.CID – Shibon