テーブルからコレクションを取得しようとしていますが、LEFT JOINを使用して関連テーブル 'like_collections'から好きな数を計算する方法がわかりません構文。MySQLはINNER関係からアイテム数を計算します
クエリでわかるとおり、それぞれcollection_id私はそのようなコレクションが好きなユーザーの数を取得する必要があります。
私は単に(SELECT COUNT(*) FROM likes_collections WHERE collection_id=cn.id) as n_likes
を使用できますが、以下のクエリを使用することが可能かどうかを知りたいと思っています。あなたはLEFT JOIN
を持っている場合
SELECT cn.id,
cn.name,
cn.description,
u.avatar,
u.username,
COUNT(lc.id) as n_likes,
(SELECT COUNT(*) FROM collection_items WHERE collection_id=cn.id) as n_items
FROM collection_names as cn
INNER JOIN users as u ON u.ID=cn.user_id
LEFT JOIN likes_collections as lc ON lc.collection_id=cn.id
WHERE cn.public=1
GROUP BY lc.collection_id
ORDER BY cn.published_date DESC
LIMIT 0, 5
「n_likes」の後にコンマがありません。 – Barmar
ありがとう、私はクエリを更新しました。 – domoindal