我正在使用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
有没有办法连接电影和关注列表表格以产生所需的结果?
感谢。
答案 0 :(得分:2)
您可以使用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