[英]MySQL Join Multiple (More than 2) Tables with Conditions
假設我有 4 張桌子:
表 1: Task
ID Task Schedule
1 Cut Grass Mon
2 Sweep Floor Fri
3 Wash Dishes Fri
表 2: Assigned
ID TaskID (FK) PersonID (FK)
1 1 1
2 1 2
3 2 3
4 3 2
表 3: Person
ID Name
1 Tom
2 Dick
3 Harry
表 4: Mobile
ID PersonID (FK) CountryCode MobileNumber
1 1 1 555-555-5555
2 2 44 555-555-1234
3 3 81 555-555-5678
4 3 81 555-555-0000
我正在嘗試顯示
我認為它應該類似於以下內容,但我不確定如何設置條件以正確限制結果:
SELECT T.ID, T.Task, P.Name, M.MobileNumber
FROM Task AS T
LEFT JOIN Assigned AS A
ON T.ID = A.TaskID
LEFT JOIN Person AS P
ON A.PersonID = P.ID
LEFT JOIN Mobile AS M
ON M.PersonID = P.ID
WHERE T.Schedule = Fri
我的目標是獲取以下信息(顯示方式不同):
Tasks Name MobileNumber
Sweep Floor, Wash Dishes Dick, Harry 44-555-555-1234, 81-555-555-5678, 81-555-555-0000
當然,如果 JOIN 是錯誤的做法,請說出來。
目前尚不清楚在這種情況下您要如何處理重復數據,但您應該考慮使用內部聯接而不是外部聯接,並使用諸如 group_concat() 之類的東西來組合電話號碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.