我是新來的SQL,並試圖獲得連接和引用的句柄。SQL:如何從同一個表中選擇兩個ID作爲兩個名稱?
數據庫是這樣的:
玩家
id | name
----+-------
1 | john
2 | tim
3 | frank
4 | tony
5 | mark
匹配
id | winner | loser
----+--------+-------
1 | 2 | 4
2 | 3 | 4
3 | 4 | 5
4 | 1 | 4
我想要得到這樣的結果:
id | winner | loser
----+--------+-------
1 | tim | tony
2 | frank | tony
3 | tony | mark
4 | john | tony
到目前爲止,我可以這樣做:
select matches.id, players.name as winner, players.name as loser
from matches, players
where winner = players.id;
但是,如果我添加and loser = players.id
,它不返回行。
我也試過這樣:
select matches.id, players.name as winner, players.name as loser
from matches
join players on matches.winner = players.id
join players on matches.loser = players.id;
產生ERROR: table name "players" specified more than once
。
我把這個搜索了一個小時,可以找到很多的案例,幾乎得到我想要的,但我仍然無法弄清楚如何用同一個表中的兩個名稱替換兩個ID。
謝謝,它的工作原理。我不知道可以在變量'w'和'l'之後放置'players'的特性。有沒有一個名稱,所以我可以查看它並瞭解更多信息? – sebu
它被稱爲別名,用於區分表格並縮短您的語句。 – Tim3880