1

因此,当我为 2 个超过 1 个 id 的连接表指定查询时,我遇到了这个问题。

假设有 2 个表:

餐桌比赛

  • p1_id(varchar)(FK)
  • p2_id(varchar)(FK)
  • p3_id(varchar)(FK)

桌位比赛通过player.id引用桌位玩家

桌上播放器

  • 身份证(PK)
  • 姓名
  • 等级
  • 性别

问题是我想检索p1 name,p2 namep3 name从表竞争...

4

1 回答 1

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

要全面了解联接,请访问以下链接:

于 2013-02-03T13:10:29.377 回答