2012-01-28 8 views
0

私は以下のテーブルを持っています。MySQLでは、ユーザからのメッセージをどのように数えますか?

メッセージ

message_id 
parent_id 
forum_id 
user_id 

ユーザー

user_id 
username 
pass 

はどのようにユーザーを照会し、そのユーザ名と彼らのメッセージの数を表示するには?

マイクエリ:

select count(subject), user_id from messages group by user_id;

問題はそれだけではなく、メッセージがないユーザ名のuser_idは、カウントが表示されることです。ユーザーの名前を表示するにはどうしたらいいですか?

+0

私の更新された答えを見て、それが動作するかどうかを教えてください... –

答えて

0

私はこれがあなたが望むクエリだと思います。

$query = "SELECT u.username, COUNT(*) as total_count FROM messages m INNER JOIN users u ON m.user_id = u.user_id GROUP BY U.user_id" 

ここでtotal_countは、同じユーザー名の参加を避けるためにユーザーIDでグループ化されたメッセージの合計数を示します。

+0

thats great !!!、thats実際に何を探していますか、完璧です..ありがとうございます! PHPのMYSQLをもっと楽しんでいます。物事はすごくうまくいきます。私を助けてくれてありがとう、本当にありがとうございます。あなたは素晴らしいです! – Hokutosei

+0

これは素晴らしいです:) – Sabari

4

あなたはあなたのクエリにusersテーブルに参加する必要があります。

select count(*), username 
from messages, users 
where users.user_id = messages.user_id 
group by users.user_id; 
+0

これはエラーをスローする必要があると思います... –

+0

'messages.count(*)、users.username'&' group by users.user_id; ' –

+0

"暗黙的な結合節 "の使用は"どこ "が廃止され、あまり明確ではないのに感謝します...明示的な方法でテーブルに結合する方がより明確で標準的であると思います。 – DonCallisto

2
SELECT username, COUNT(*) FROM messages M 
JOIN users U USING (user_id) 
GROUP BY U.user_id 

これは、2つの異なるUSER_IDは、ユーザーテーブルで同じユーザー名を持つシナリオの世話をします。また、このクエリはMySQL固有のもので、他のRDBMSでは動作しない可能性があります。

+0

おそらく 'user_id'でグループ化することができますが、選択リストの非集約値でグループ化する方が一般的です。標準SQLとほとんどのSQL DBMSでは、GROUP BY句に表示される 'username'が必要です。 –

+0

@JonathanLefflerあなたは正しいです。しかし、MySQLはそれを許すべきです。また、2つの異なるuser_idがusersテーブル内の同じユーザ名を持つ場合を区別したいと思いました。 –

+0

WOOOWWW !!!!それは働く!!!!私は病気が私の目に涙を持っていると思う..ちょうど冗談...うわー、MySQLはクールです!助けてくれてありがとう!私は、PHP MySQLについてもっと学ばなければならないと思います!ありがとうございました!! – Hokutosei

0

以下に使用してください。私はそれが動作すると信じています。

SELECT messages.user_id, users.username, count(*) 
FROM messages, users 
WHERE messages.user_id = users.user_id 

Good Luck !!!

+0

count(*)を使用すると、GROUP BYステートメントを使用する必要はありません。 –

+0

"count(*)を使用する場合、GROUP BY Statement_を使用する必要はありません。他のSQL DBMSにはGROUP BY句が必要です。 –

+0

私のクエリをチェックし、それが動作するかどうかを教えてもらえますか?私はここにmysqlを持っていません... –

関連する問題