0

我有以下三个表(简化):

User ( 
    UserID
    UserName
) 

UserMsg ( 
   toUserID
    MsgID
   theMsg

)

UserMsgComment ( 
   CommentID, 
  MsgID, 
 theComment 
) 

并希望显示每个用户拥有的 UserMsg-s 以及每个 UserMsg 的 UserMsgComment 的计数。如果 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 回答