繁体   English   中英

MySQL合并数据+计数(*)从2个表查询

[英]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

有人知道其他解决方案吗?

这是查询的清理版本,假设您需要每个查询的useridnumber of comments

SELECT members.userid, count(*) as count 
FROM members
INNER JOIN comments 
ON members.userid = comments.userid 
GROUP BY members.userid

我解决的问题:

  1. 仅在group by子句中应用了汇总函数的选定列。 选择不满足任何一个条件的列是不正确的(尽管MySQL允许您这样做)
  2. 用显式连接替换隐式连接,并将连接条件从where子句移动到on子句
  3. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM