繁体   English   中英

SQL相同的联接在具有不同值的两列中

[英]SQL same join in two columns with different values

我不知道什么是最好的方法

斗争

Fighter_ID1 | Fighter_ID2

FIGHTERS

ID | Fighter

OUTPUT

Fighter1 | Fighter2

我想将表FIGHTERS的列fighter与表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作为字段获取战斗机名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM