加入两个mysql表来获取true / false列

时间:2017-11-29 05:18:06

标签: php mysql

我正在使用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

有没有办法连接电影和关注列表表格以产生所需的结果?

感谢。

1 个答案:

答案 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