我自己无法弄清楚这一点。希望有人可以帮助我。
我有三个表:users
、cards
和referees
users_cards
用户:
id | userName | referee_id
----------------------------
1 | u1 | 1
2 | u2 | 1
3 | u3 | 2
裁判员:
id | refName
--------------
1 | ref1
2 | ref2
牌:
id | cardName
--------------
1 | card1
2 | card2
用户卡:
user_id | card_id | color | number
-------------------------------------------
1 | 1 | red | 123
1 | 2 | yellow | 312
2 | 2 | yellow | 523
3 | 1 | red | 344
我想要得到的结果是:
id | userName | refName | cards
1 | u1 | ref1 | card1: red (123), card2: yellow (312)
2 | u2 | ref1 | card2: yellow (523)
3 | u3 | ref2 | card1: red (344)
等等...
当用户拥有不止一张卡时,我所能得到的只是多行。那么我怎样才能像这样组合它们。
感谢任何可以帮助我的人!
编辑:
目前我只是使用LEFT JOIN
s
SELECT UserName, refName cardName, color, number,
FROM users
LEFT JOIN referees ON users.referee_id = referees.id
LEFT JOIN users_cards ON users.id = users_cards.user_id
LEFT JOIN cards ON dbo.users_cards.card_id = cards.id