2013-10-27 250 views
0

信息從相同的LEFT JOIN表中檢索兩次匹配數據?

有沒有辦法,我可以從另一個(下同)表中的一個LEFT JOIN檢索信息的兩位兩次呢?

嘗試

下面是SQL查詢我試着放在一起,希望將工作。我希望你能從中看到我想要做的。

SELECT cards.*, list.name FROM cards LEFT JOIN list ON cards.main = list.id AS main_name AND cards.enemy = list.id AS enemy_name WHERE cards.id = 1

正如你可以看到上面我試圖從list表中檢索兩個值cards.maincards.enemy的名字。

謝謝,任何問題都將盡快回復!

+0

SELECT cards.main,cards.enemy應該做的,對不對? – Krishna

+0

cards.main&cards.enemy中的數據是ID,然後我試圖通過LEFT JOIN檢索表列表來獲取它們的實際名稱。 – Harry

回答

0

你必須加入名單表兩次:

SELECT cards.*, main_name.name, enemy_name.name 
FROM cards 
LEFT JOIN list AS main_name ON cards.main = main_name.id 
LEFT JOIN list AS enemy_name ON cards.enemy = enemy_name.id 
WHERE cards.id = 1 
+0

在一個連接中沒有辦法做到這一點嗎? – Harry

+0

不,這些是列表中的不同行,因此是不同的連接。你爲什麼要加入一個? –

+0

儘管你可以做'ON cards.main = list.name或cards.enemy = list.name',但是這會給你結果集中的兩行 –