选择在mysql中加入两个表,同时在两个表上使用count / group

时间:2015-10-27 18:36:20

标签: mysql join count

我正在学习如何使用where子句从两个表中进行选择,以使用一个字段匹配记录。到目前为止,我可以使用OR或其他表上的组/计数来执行此操作,例如

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

OR

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

但我不能在两者都计数> 1(或任何其他#I选择)的情况下这样做。

我尝试过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的count查询,来自table2的count,并查找从两者中计数的一个和一个在Table2中得到ALL recods的表,其中Table1计数> (在sqlfiddle中注释)

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

1 个答案:

答案 0 :(得分:0)

您应该阅读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