在MySQL中连接三个表

时间:2011-08-20 01:41:06

标签: mysql sql

我有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

你知道我怎么做吗?

1 个答案:

答案 0 :(得分:4)

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