多年后更新:
我回来回答我自己的问题。我不知道内部联接是什么,显然完全滥用了这个术语。
我目前有以下3个表格:
团队
TeamID
播放器
PlayerID | TeamID
匹配
Player1 | Player2 | Round
我想写一个显示匹配的查询:
Team1 | Team2
我想出了如何加入我的桌面玩家和匹配,到目前为止也有效,但我无法弄清楚如何用球队名称替换球员名称。任何的想法?我有以下内容:
SELECT P1.PlayerID AS Player1, P2.PlayerID AS Player2
FROM MATCH
INNER JOIN PLAYER AS P1 ON MATCH.Player1 = P1.PlayerID
INNER JOIN PLAYER AS P2 ON MATCH.Player2 = P2.PlayerID
答案 0 :(得分:0)
几年后,我又回到了这个问题。
假设有以下表格:
团队
id | name
播放器
id | team_id
匹配
player1_id | player2_id | round
我想要的结果是类似的
player1's team name | player2's team name | round
我最初使用的是distinct,但正如Turophile正确指出的那样,distinct不是删除重复项的正确方法。
更好的查询应该是
select t1.name, t2.name, m.round
from match as m
left join player as p1 on m.player1_id = p1.id
left join team as t1 on p1.team_id = t1.id
left join player as p2 on m.player2_id = p2.id
left join team as t2 on p2.team_id = t2.id