[英]Joining two mysql tables to get a true/false column
我正在使用PHP和MySql。 我正試圖找到一種從mysql表中選擇一些電影的方法,但除了電影表之外,我還有一個監視列表,用於存儲用戶ID和他/她添加到他/她的監視列表中的電影的movieID :
id userID movieID
=====================================
1 1 3
2 1 5
3 1 7
4 2 3
5 2 2
6 3 2
電影表看起來像這樣
movieID title duration
=============================
1 tit1 34:43
2 tit2 35:43
3 tit3 24:43
4 tit4 34:13
5 tit5 11:43
6 tit6 22:43
7 tit7 33:43
我之后的結果是(例如ID為1的用戶):
movieID title duration added
=======================================
1 tit1 34:43 false
2 tit2 35:43 false
3 tit3 24:43 true
4 tit4 34:13 false
5 tit5 11:43 true
6 tit6 22:43 false
7 tit7 33:43 true
有沒有辦法連接電影和監視列表表以產生所需的結果?
謝謝。
您可以使用LEFT JOIN
獲取所需的輸出,然后在連接表中檢查NULL
。
SELECT m.*, IF(w.id IS NULL, 0, 1) AS added
FROM movies m
LEFT JOIN watchlist w ON (m.movieID = w.movieID AND w.userID = 1)
GROUP BY m.movieID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.