sql 一个表的两列引用另一表中的同一列

Mar*_*kus 2 sql foreign-keys left-join

我有这2张桌子

tbl_link

    pID | fID_a | fID_b | link_desc
     1  |  1    |  2    |  aa + bb

tbl_structure

    pID | desc
     1  |  a
     2  |  b
Run Code Online (Sandbox Code Playgroud)

fID_a 和 fID_b 是 tbl_struct 中 pID 的外键 fID_a 不允许 NULL 值,而 fID_b 允许

我试图在查询结构 1 时检索结构 2 的 desc

我现在的 sql 查询看起来像这样

SELECT a.link_desc, tbl_structure.desc FROM tbl_strukture 
LEFT JOIN tbl_link as a ON tbl_structure.pID = a.fID_a 
LEFT JOIN tbl_link as b ON tbl_structure.pID = b.fID_b 
WHERE tbl_structure.pID = 1
Run Code Online (Sandbox Code Playgroud)

但我只得到了 PID 为 1 的结构的 desc!

感谢您的帮助!

pet*_*erm 5

您在找这个吗?

SELECT l.link_desc, 
       s.[desc] description1,
       s2.[desc] description2
  FROM tbl_link l LEFT JOIN tbl_structure s 
    ON l.fID_a = s.pID LEFT JOIN tbl_structure s2 
    ON l.fID_b = s2.pID 
WHERE s.pID = 1
Run Code Online (Sandbox Code Playgroud)

SQLFiddle(SQL 服务器)

SQLFiddle(MySql)