エラーが見つからなかったため、このクエリが正しく機能しない理由がわかりません
SELECT U.user_name,
COUNT(*) AS fav_count
FROM Users AS U
LEFT JOIN Favorites AS F
ON F.user_id = U.user_id;
どうもありがとうございました。私の下手な英語で申し訳ありません!
エラーが見つからなかったため、このクエリが正しく機能しない理由がわかりません
SELECT U.user_name,
COUNT(*) AS fav_count
FROM Users AS U
LEFT JOIN Favorites AS F
ON F.user_id = U.user_id;
どうもありがとうございました。私の下手な英語で申し訳ありません!
クエリを次のように変更します。
SELECT U.user_name, COUNT(F.user_id) AS fav_count
FROM Users AS U
LEFT JOIN Favorites AS F ON F.user_id = U.user_id
GROUP BY U.user_name
これにより、次の 2 つの問題が解決されます。
GROUP BY
ユーザーごとのカウントを取得するには、 を使用する必要があります。
式では、NULL 行がカウントされないようCOUNT()
に、テーブル内の列を指定する必要があります。LEFT JOIN
そうfav_count = 1
しないと、お気に入りのないユーザーが取得されます。
select sum(),count(),avg(),max() でこのコマンドを使用する場合は、group by を使用する必要があります。