2013-02-03 28 views
1

所以我在爲超過1個ID的2個連接表指定查詢時遇到了這個問題。MySQL連接超過1個ID的查詢

假設有2個表:

競爭

  • p1_id(VARCHAR)(FK)
  • p2_id(VARCHAR)(FK)
  • p3_id(VARCHAR)(FK )

競爭player.id

播放機參照表播放

  • ID(PK)
  • 名稱
  • 水平
  • 性別

問題是我要檢索的p1 namep2 namep3 name從表競爭 ...

回答

3

加入表玩家thrice得到它的等效值,

SELECT a.*, 
     b.name Player1_Name, 
     c.name Player2_Name, 
     d.name Player3_Name 
FROM Competition a 
     INNER JOIN player b 
      a.p1_ID = b.ID 
     INNER JOIN player c 
      a.p2_ID = c.ID 
     INNER JOIN player d 
      a.p3_ID = d.ID 

如果的一個表competition中的列是可空,更好地使用LEFT JOIN而不是INNER JOIN

爲了充分獲得知識約加盟,請訪問以下鏈接:爲例子

+1

快速的,非常快速... :-) –

+0

感謝...它作品 – Jason

+0

不客氣':D' –