【发布时间】:2014-02-05 15:04:07
【问题描述】:
我有三个mysql表,每个表都有一个连接唯一ID
剧集
epis_epsiode_id || epis_title
123 Test
456 Another Test
观察名单
wali_pisode_id || wali_status || wali_user_id
123 1 16
观看日志
wast_episode_id ||浪费状态 || wast_user_id
456 1 16
上面显示了两个剧集,剧集 123 添加到用户 16 观看列表中,剧集 456 记录了同一用户观看。
我需要做的是构建一个查询,该查询返回所有Episodes 以及Watch List 和Watch Log 中的user_id = 16 显示每个表的状态与剧集行或否则显示null
我可以让一个表连接工作,但是当我添加另一个井时,这就是问题的原因。
我知道与此类似的其他问题,但在尝试了大多数答案后,我仍然在努力获得所需的结果。
能否有一个非常有用的帖子发布一个可以实现上述目的的查询示例?
谢谢
编辑
SELECT
e.*,
wl.wali_status,
ws.wast_status
FROM
meta_episodes e
LEFT OUTER JOIN
app_watch_list wl
ON wl.wali_episode_id = e.epis_episode_id
AND wl.wali_user_id = 16
LEFT OUTER JOIN
app_watch_status ws
ON ws.wast_episode_id = e.epis_episode_id
AND ws.wast_user_id = 16
期望的结果
结果
epis_episode_id || epis_title || wali_status || wast_status
123 Test 1 NULL
456 Another… NULL 1
【问题讨论】:
-
我没有包括一个,因为似乎没有一个按我的预期工作,我可以发布一个我正在做的例子,但我认为这对贡献者没有帮助
-
不会也有害吧?
-
SQL JOIN 和 LEFT JOIN
-
你可以用 UNION 来实现这种事情,w3schools.com/sql/sql_union.asp 是开始了解它们的好地方。
-
将我的查询添加为请求,感谢@Alexander 的推动;)