[英]Three Table Join MySQL
我有三個mysql表,每個表都有一個唯一的連接ID
123 Test
456 Another Test
123 1 16
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
所需結果
123 Test 1 NULL
456 Another… NULL 1
這應該工作:
SELECT E.epis_episode_id,
E.epis_title,
WLI.wali_status,
WLO.wast_status
FROM `Episodes` AS E
LEFT JOIN `Watch List` AS WLI
ON E.epis_episode_id = WLI.wali_episode_id
AND WLI.wali_user_id = 16
LEFT JOIN `Watch Log` AS WLO
ON E.epis_episode_id = WLO.wast_episode_id
AND WLO.wast_user_id = 16
SELECT e.*, wali_status, wast_status
FROM meta_episodes e
LEFT JOIN app_watch_list wl ON e.epis_epsiode_id = wl.wali_episode_id AND wali_user_id = 16
LEFT JOIN app_watch_status ws ON e.epis_epsiode_id = ws.wast_episode_id AND wast_user_id = 16
有關提琴的更多信息http://sqlfiddle.com/#!2/071751/13
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.