2011-09-07 55 views
0

我正在做的是做一個查詢,所以我可以使戰鬥表更具可讀性。
所以戰士1會從戰士桌上拉1的ID,而戰士2會做同樣的事情。贏家是0,1,2。零表示它是平局,然後1表示戰鬥機1贏了,2表示戰鬥機2贏了。MySQL數據庫INNER加入 - 查詢幫助

我試過到目前爲止查詢:

SELECT CONCAT(first_name, ' ', last_name) 'Fighter 1', 
     CONCAT(victory_method.name, ' (', method_notes, ')') 'Victory' 
    FROM fights 
    JOIN fighters ON fights.fighter1_id = fighters.id 
    JOIN victory_method ON fights.victory_method_id = victory_method.id 

enter image description here

現在這是一個良好的開端,但我需要的是找出如何讓戰鬥機2上有列出來,並那麼也是贏家,要麼是如果是平局還是戰鬥機1或2誰贏了。

回答

2

內再加入戰鬥機表,使用化名as

SELECT 
CONCAT(fo.first_name, ' ', fo.last_name, if (fights.winner=1, "Winner", "Loser")) 'Fighter 1', 
CONCAT(ft.first_name, ' ', ft.last_name, if (fights.winner=2, "Winner", "Loser")) 'Fighter 2', 
CONCAT(victory_method.name, ' (', method_notes, ')') 'Victory' 
FROM fights 
INNER JOIN fighters as fo ON fights.fighter1_id = fo.id 
INNER JOIN fighters as ft ON fights.fighter2_id = ft.id 
INNER JOIN victory_method ON fights.victory_method_id = victory_method.id 
+0

我修改了答案,請務必使用別名,你不能加入/選擇相同的域因爲MySQL不知道你在說哪一個關於。 – Will

+0

刪除fighers。已解決的答案 – Will

+0

謝謝!工作完美。所以對於獲獎者,我在SELECT中增加了「Winner」,所以它說贏家是1.我怎麼說它是贏家安德森銀幣,因爲它看到安德森席爾瓦是戰士1? – Drew