我有2张桌子(照片,照片,细节),由LEFT JOIN加入,我想加入第三张(收藏夹)以查看照片是否有利。 这是当前的SQL查询:
SELECT photos_details.title, photos_details.description, photos.url
FROM photos
LEFT JOIN photos_details ON photos.photo_id = photos_details.photo_id
收藏夹表基本上包含2列(PRIMARY)id和photo_id
你知道我怎么做吗?
答案 0 :(得分:4)
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