我不知道最好的方法是什么
FIGHT
Fighter_ID1 | Fighter_ID2
FIGHTERS
ID | Fighter
输出
Fighter1 | Fighter2
我想加入表fighter
的列FIGHTERS
和表FIGHT
中的两列。
这可能是一个愚蠢的问题,但我不知道如何以正确的方式做到这一点
对不起我的英文并感谢
答案 0 :(得分:2)
SELECT F1.Fighter as Fighter1,
F2.Fighter as Fighter2
FROM FIGHT
INNER JOIN FIGHTERS as F1 ON FIGHT.Fighter_ID1 = F1.ID
INNER JOIN FIGTHERS as F2 ON FIGHT.Fighter_ID2 = F2.ID
答案 1 :(得分:1)
看起来你需要两次加入桌面。
SELECT fs1.Fighter as Fighter1, fs2.Fighter as Figther2
FROM Fight f
INNER JOIN Fighters fs1
ON f.Fighter_ID1 = fs1.id
INNER JOIN Fighters fs2
ON f.Fighter_ID2 = fs2.id
答案 2 :(得分:1)
怎么样
select f1.name, f2.name -- pick any column you like
from FIGHT f -- from here we join both fighters by id
join FIGHTER f1 on f.fighter_id1 = f1.id
join FIGHTER f2 on f.fighter_id2 = f2.id
答案 3 :(得分:1)
因为你每场战斗都会有2架战斗机,所以你需要为你的桌子添加别名。我在这里直接输入这个,所以我不能保证它是100%准确但它应该看起来像这样:
SELECT *
FROM FIGHT
INNER JOIN FIGHTERS AS F1 ON F1.ID = Fighter_ID1
INNER JOIN FIGHTERS AS F2 ON F2.ID = Fighter_ID2
然后你可以使用F1.Fighter和F2.Fighter作为你的领域获得战斗机名称。