我不知道这样做的最佳方法是什么
斗争
Fighter_ID1 | Fighter_ID2
战士
ID | Fighter
输出
Fighter1 | Fighter2
我想将表的列fighter
与表FIGHTERS
中的两列FIGHT
..
这可能是一个愚蠢的问题,但我不知道如何以正确的方式做到这一点
对不起我的英语,谢谢
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
看起来你需要在桌子上加入两次。
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
怎么样
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
因为每场战斗你都会有 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 作为您的字段来获取战斗机名称。