2

現在、次の MySQL クエリを使用しています。

$query="SELECT user, COUNT(*) AS num FROM tracks GROUP BY user ORDER BY COUNT(*) DESC";

これにより、テーブル「トラック」内の各ユーザーのエントリ数のカウントを含む、各ユーザーの一意の行が得られます。

ただし、すべてのユーザーが「トラック」テーブルにエントリを持っているわけではなく、ページ上のすべてのユーザーを選択/リストしたいと考えています。ただし、すべてのユーザーは「ユーザー」と呼ばれる別の MySQL テーブルに含まれています。

「tracks」テーブルのエントリ数でソートされたすべてのユーザーを表示したいので (下部の「tracks」テーブルにエントリがないユーザーを表示)、これを実現するには 1 つの SELECT クエリを使用する必要があると思います。 、しかし、これを行う方法がわかりません。何か助けていただければ幸いです。

4

1 に答える 1

1

左結合を行う必要があります。「tracks」テーブルの「user」列と一致する「user_id」列を持つ「users」テーブルがあると仮定します。

SELECT users.user_id, count(tracks.user) from users left join tracks on (users.user_id = tracks.user) group by tracks.user order by count(tracks.user) DESC;
于 2012-08-12T23:17:09.517 に答える