1

imageId、この画像のいいねの総数、および現在のユーザーがその画像を気に入っているかどうかのブール値を返す SQL クエリを作成しようとしています。

私がこれまでに持っているものは次のとおりです。

Select i.imageId, count(l.likeId) as numOfLikes
FROM Images as i LEFT JOIN Likes as l USING (imageID)
WHERE i.userId = '16'
GROUP BY i.imageId
ORDER BY i.dateCreated DESC

これは、imageIds と各画像のいいね! の合計数に最適です。ユーザーが同じクエリ内でその画像を気に入っているかどうかをどのように判断できるかわかりません。

前もって感謝します!

4

1 に答える 1

1

このようなものがうまくいくはずです。

Select i.imageId, count(l.likeId) as numOfLikes
, count(likes2.*) LikesByUser
FROM Images as i LEFT JOIN Likes as l USING (imageID)
left join likes likes2 using (imageID, UserId)
WHERE i.userId = '16'
GROUP BY i.imageId
ORDER BY i.dateCreated DESC

LikesByUser は 0 または 1 である必要があります。

于 2013-05-27T16:15:20.020 に答える