[英]MySQL Combine Data + Count(*) Query FROM 2 tables
我需要查询方面的帮助。 我有一个“成员”表和一个“评论”表。
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
有人知道其他解决方案吗?
这是查询的清理版本,假设您需要每个查询的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(comments.*)
select ... count(*)
。 count(*)
可以正常工作 谢谢,马特,我用过您的版本。 我通过sql-joins学习。
我的代码的问题是'count(comments。*)'。 MySQL不喜欢这样!
这正在工作:
SELECT members.*, count(comments.rel) as count
FROM members, comments
WHERE members.userid=comments.userid
group by members.userid
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.