我正在尝试创建一个从三个表中选择的查询。

m_release
---------------------------
 release_id名称
---------------------------
  1个发行版1
  2版本2
  3版本3


mk_release_artist
---------------------------
 release_id artist_id
---------------------------
  1134
  2135


mk_release_remix
---------------------------
 release_id artist_id
---------------------------
  3 134


到目前为止,我已经创建了以下查询,但是它不返回任何行:

选择*从m_release A
加入mk_release_artist B于A.release_id = B.release_id AND B.artist_id = 134
加入mk_release_remix C ON A.release_id = C.release_id AND C.artist_id = 134

当我使用一个JOIN从两个表中选择时,它正在工作

选择*从m_release A
加入mk_release_artist B于A.release_id = B.release_id AND B.artist_id = 134

我期望看到的输出是:

---------------------------
 release_id名称
---------------------------
  1个发行版1
  3版本3

最佳答案

SELECT A.*
FROM m_release A
LEFT JOIN mk_release_artist B ON A.release_id = B.release_id
LEFT JOIN mk_release_remix C ON A.release_id = C.release_id
WHERE 134 in (B.artist_id, C.artist_id)

关于mysql - MySQL多个内部联接不返回行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26875394/

10-11 13:16