這是我認爲是一個相當常見的模式,但我只是努力與它適當的查詢。三種方式加入鏈接表
User Table
id
Member table
id
name
User Member link table
user_id
member_id
用戶可能存在於用戶的表中,但用戶成員鏈接表中沒有一行。
我想選擇用戶表的所有行,並且用戶鏈接到用戶成員鏈接表中的成員以顯示從成員錶鏈接到他們的列。
下面是我得到了什麼,但它只是從用戶獲取錶鏈接行:
SELECT user.id, user.username, member.id, member.name
FROM users
LEFT JOIN user_member ON user.id = user_member.user_id
JOIN member ON user_member.member_id = member.id;
我應該得到的東西是這樣的:
user.id user.username member.id member.name
1 bob null null
2 alice 10 Alice
3 jane 11 Jane
4 joe null null
有什麼建議?
你爲什麼用'左JOIN'一加入,而不是其他? –
那麼,如果我使用LEFT JOIN進行第二次連接,我會從USER獲取所有行,但是在有匹配成員的位置,會出現重複行。 –
您能提供您期望的輸出樣本嗎?另外,如果用戶擁有很多成員,則無法避免出現重複的用戶數據 – Alex