0

この場合、どうすれば合計レコードを見つけることができますか?

テーブル「users」、テーブル「messages」、テーブル「groups」があります。ユーザーはメッセージを送信でき、それはテーブル「メッセージ」に保存されます。各ユーザーは、1つのグループのメンバーになることができます。ここで、グループ内のすべてのユーザーによって送信されたメッセージの合計をgroup-details-pageに表示したいと思います。グループ内のすべてのユーザーを取得してメッセージをカウントするにはどうすればよいですか?それを行うための最良かつ最速の方法は何ですか?

結合を使用できないため、これは機能しません。修正方法がわかりません。

SELECT COUNT(Message_id)AS total_messages、d.Userid FROM messages AS d LEFT JOIN users AS s ON(s.Groupid = $ groupid)WHERE s.Groupid = $ groupid

ありがとう!

テーブル構造が必要な場合:

** users **
Userid
Groupid

** groups **
Groupid
Some_details

** messages **
Messageid
Userid
Subject
Content
4

3 に答える 3

1

ユーザーごとに知る必要のない合計メッセージを探している場合は、試してみてください

SELECT COUNT(messages.Messageid) as total_messages
FROM messages
    INNER JOIN users ON messages.Userid = users.Userid
WHERE users.Groupid = $groupid

messages.Useridフィールドに基づいて多くのクエリを実行する場合は、フィールドにもインデックスを付けていることを確認してください。

ユーザーごとのカウントが必要

SELECT 
    COUNT(messages.Messageid) as num_messages,
    messages.Userid
FROM messages
    INNER JOIN users ON messages.Userid = users.Userid
WHERE users.Groupid = $groupid
GROUP BY users.Userid
于 2012-05-29T10:48:00.757 に答える
0
Select  Groupid,Some_details,count(Messageid) as count_message from groups Left join users On 
users.Groupid = groups.Groupid left join messages on messages.Userid = users.users.Userid GROUP BY Groupid   
于 2012-05-29T11:06:48.213 に答える
0

特定のグループのすべてのユーザーに合計メッセージを表示したい場合は、これを試してください

SELECT messages.Userid, COUNT(messages.Messageid) as total_messages
FROM messages
    INNER JOIN users ON messages.Userid = users.Userid
WHERE users.Groupid = $groupid GROUPBY messages.Userid
于 2012-05-29T10:54:30.593 に答える