我有两张表(照片、照片和详细信息)用左键连接,我想加入第三张表(收藏夹)以查看照片是否被收藏夹。
这是当前的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是否为空,将其转换为布尔值TRUEFALSE如果照片有收藏夹。

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/

10-12 01:30