0

クエリの設定について少しサポートが必要です。私は単に、これら2つのテーブル、クラン、ユーザーを結合することによって、同じ「クラン」にいる人々の数にアクセスしようとしています。各ユーザーには、テーブルクランの列「roomOwner」と同じ列「clan」があります。次に、テーブルクランの情報とメンバーの数を取得しようとしているので、room、roomOwner、members So基本的に私が持っているのはこれだけです:

SELECT c.*, count(u.clan) AS members FROM clans c inner join users u WHERE c.roomOwner = u.clan ORDER BY members;

ただし、1つのクランしか表示されません。何か助けてください?

4

3 に答える 3

1

GROUP BYクエリには句がありません。そして、私はそれが単一のレコードを返すだけだと思いますか?aにはメンバーがいないLEFT JOIN可能性があるため、ここで必要になります。clan

SELECT  b.roomOwner, COUNT(a.clan) memberCount
FROM    clan b
        LEFT JOIN users a
            ON a.clan = b.roomOwner
GROUP BY b.roomOwner
ORDER BY memberCount 
于 2012-10-25T02:15:55.233 に答える
0

おそらくこれは役立つでしょう:c。*を選択し、クランからのメンバーとしてcount(links.id)cを残してc.roomOwner = u、clan groupbyu.clanでユーザーuに参加します

于 2012-10-25T02:26:29.510 に答える
0

GROUPBYを忘れました。「クラン」テーブルに「id」列がありますか?その「id」でグループ化する

SELECT c.*, count(u.clan) AS members 
FROM clans c 
inner join users u ON c.roomOwner = u.clan
GROUP BY clans.id

また、ユーザーが0人であっても、すべてのクランに関する情報を表示するには、INNERJOINではなくLEFTJOINが必要です。

于 2012-10-25T02:15:16.110 に答える