我有两张表(照片、照片和详细信息)用左键连接,我想加入第三张表(收藏夹)以查看照片是否被收藏夹。
这是当前的SQL查询:
SELECT photos_details.title, photos_details.description, photos.url
FROM photos
LEFT JOIN photos_details ON photos.photo_id = photos_details.photo_id
收藏夹表基本上包含两列(主)id和照片id
你知道我怎么做吗?
最佳答案
LEFT JOIN
根据收藏夹表,用CASE
确定favorites.photo_id
是否为空,将其转换为布尔值TRUE
或FALSE
如果照片有收藏夹。
SELECT
photos_details.title,
photos_details.description,
photos.url,
CASE WHEN favorites.photo_id IS NOT NULL THEN TRUE ELSE FALSE END as is_favorited
FROM photos
LEFT JOIN photos_details ON photos.photo_id = photos_details.photo_id
LEFT JOIN favorites ON photos.photo_id = favorites.photo_id
若要只获取受欢迎的照片,请添加
WHERE favorites.photo_id IS NOT NULL
关于mysql - 在MySQL中联接三个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7129023/