我的数据库中有两个表,videoswatched
videos表包含视频及其元数据,其主键是video_id
watched表包含有关用户已观看的视频的信息。它的关键是video_id+user_id
我想创建一个查询,它将返回来自videos表的所有视频,并添加一个值为true的列,用于存在于watched表中的视频。
伪代码可以如下所示:

SELECT a,b,c, IF(video_is_watched, true, false) AS watched FROM videos
LEFT JOIN watched ON watched.user_id = "user-id"

谢谢你抽出时间

最佳答案

使用case语句检查w.video_Id中的空值不观看时将为空。

SELECT V.a, v.b, v.c,
       case when w.video_ID is null then FALSE else TRUE end as UserWatched
FROM videos v
LEFT JOIN watched w
  ON V.video_ID  w.Video_ID
 and w.user_id = "user-id"

关于mysql - 建立连接时,MySQL设置变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29994061/

10-11 03:25