0

次の 3 つのテーブルがあります (簡略化)。

User ( 
    UserID
    UserName
) 

UserMsg ( 
   toUserID
    MsgID
   theMsg

)

UserMsgComment ( 
   CommentID, 
  MsgID, 
 theComment 
) 

また、各 UserMsg の UserMsgComment の数とともに各 User の UserMsg-s を表示したいと考えています。UserMsg に UserMsgComment がない場合は「0」を表示したい。

  UserName | UserMsg | COUNT(UserMsgComment) or show '0' 


SELECT u.*, m.theMsg FROM User u, 
LEFT JOIN UserMsg m ON u.UserID = m.toUserID 

各 UserMsg の UserMsgComment の合計数を表示するように、または UserMsgComment にエントリがない場合は 0 を表示するには、このクエリをどのように変更する必要がありますか?

どうもありがとう。

4

1 に答える 1

2

追加のテーブルに参加し、それに応じてグループ化するだけです。u.* を選択する場合は、User テーブルの各列でもグループ化する必要があることに注意してください。

SELECT u.UserID, m.theMsg, COUNT(mc.CommentID)
FROM User u, 
LEFT JOIN UserMsg m ON u.UserID = m.toUserID
LEFT JOIN UserMsgComment mc on m.MsgID = mc.MsgID
GROUP BY u.UserID, m.theMsg
于 2013-08-22T15:23:17.280 に答える