我有 2 个表(照片、photos_details)通过 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
你知道我该怎么做吗?
最佳答案
LEFT JOIN
针对收藏夹表,并使用 CASE
确定 favorites.photo_id
是否为 null,将其转换为 bool 值 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/