2012-10-20 108 views
2

表是设置如下:连接两个表,两列同时显示多行的单行

fighters: 

fighterid 
firstname 
lastname 
etc 
etc 

matches: 

matchid 
fighteroneid (fighterid FK) 
fightertwoid (fighterid FK) 
etc 
etc 

我想加入这两个fighteroneid和fightertwoid到它们具有相同的matchid的fighterid(我敢肯定,我已经得到了这部分想通了),但如果我失败是试图在一个表中,如下所示显示它:

firstname lastname vs firstname lastname 

我可以使用COALESCE显示fighteroneid和fightertwoid例如1比2,但是我怎样才能链接到名和姓每个战斗机给予这些ID?

由于提前,

斯宾塞

回答

2
SELECT 
      f1.firstname 
     , f1.lastname 
     , f2.firstname 
     , f2.lastname 
    FROM matches AS m 
     INNER JOIN fighters AS f1 
      ON f1.fighterid = m.fighteroneid 
     INNER JOIN fighters AS f2 
      ON f2.fighterid = m.fightertwoid 
+0

作为说明,这里正在使用的技术方法是一个的变体自连接,在同一个表是用不同的别名的加入两倍普通桌子。 –

+0

谢谢!这工作完美 – Spence