2012-04-18 71 views
1

我不知道什么是做这个SQL两列相同的连接使用不同的值

争取最好的办法

Fighter_ID1 | Fighter_ID2 

FIGHTERS

ID | Fighter 

OUTPUT

Fighter1 | Fighter2 

我想加入该列的表FIGHTERS用表FIGHT两列的fighter ..

它可以是一个愚蠢的问题,但我不知道如何以正确的方式做到这一点

对不起我的英语和感谢

+0

您想要将结果一个接一个或在两个单独的列中结果相同吗? – rcdmk 2012-04-18 22:29:24

+0

de输出有2列 – leinho 2012-04-18 22:32:51

回答

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

看起来像你需要加入在桌子上的两倍。

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 
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 
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为您的字段名战斗机。

相关问题