我正在学习如何使用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中注释)
答案 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