我需要查询帮助。我有一个'成员'表和'评论'表。
members: userid,name,bday etc...
comments: id,userid,message,rel etc...
直到现在我对membersdata和commentsCount使用了2个查询,并在PHP中结合使用。
我的问题。是否有可能只在一个查询中同时获得两者(所有来自成员和评论的数量)?
这不是工作......
SELECT members.*, count(comments.*) as count
FROM members, comments
WHERE members.userid=comments.userid
group by members.userid
有人知道其他解决方案吗?
答案 0 :(得分:2)
以下是您的查询的清理版本,假设您希望每个版本都有userid
和number of comments
:
SELECT members.userid, count(*) as count
FROM members
INNER JOIN comments
ON members.userid = comments.userid
GROUP BY members.userid
我提出的问题:
group by
子句中的列,或者应用聚合函数。选择不满足这些标准的列是不正确的(虽然MySQL允许你这样做)where
子句移至on
子句select ... count(comments.*)
替换为select ... count(*)
。 count(*)
工作得很好答案 1 :(得分:0)
谢谢马特 我用过你的版本。我正在通过sql-joins学习。
我的代码的问题是'count(comments。*)'。 Mysql不喜欢这个!
这是有效的:
SELECT members.*, count(comments.rel) as count
FROM members, comments
WHERE members.userid=comments.userid
group by members.userid