繁体   English   中英

选择联接两个在mysql中具有计数/组的表

[英]Select Join two tables in mysql with a count/group on both

我正在学习如何从两个具有where子句的表中进行选择以匹配使用一个字段的记录。 到目前为止,我可以在另一个表上使用分组/计数

Select count(*),t1.*,t2.all 
from t1,t2 
where t1.Name=t2.name 
group by T1.date 
having count(*)>1

要么

Select count(*),t1.*,t2.all 
from t1,t2 
where t1.Name=t2.name 
group by T2.order 
# having count(*)>1

但是在两个计数均大于1(或我选择的任何其他#)的情况下,我无法执行此操作。

我尝试做table.count(*)例如

Select t1.count(*),t1.*,t2.all 
from t1,t2 
where t1.Name=t2.name 
group by T1.date 
having count(*)>1

但是mysql抛出一个错误。 本质上,我想在表之间给出各种计数要求以获取报告,但只有一个计数是行不通的。

这是一个SQL提琴,带有来自table1的计数查询,来自table2的计数,并查找一个同时计数的表和一个获得Table2中所有Recods的表,其中Table1的计数>(sqlfiddle中的注释)

http://sqlfiddle.com/#!9/c00d2/6

您应该阅读有关JOIN并避免使用FROM t1, t2

因此,我猜您编写的最后一个查询应该是这样的:

SELECT count(t1.id),
     t1.*,
     t2.all 
FROM t2
LEFT JOIN t1 
ON t1.Name=t2.name 
GROUP BY T1.date 
HAVING count(t1.id)>1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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