【发布时间】:2016-01-27 08:03:29
【问题描述】:
我只是在学习如何从带有 where 子句的两个表中进行选择,以使用一个字段匹配记录。到目前为止,我可以在 OR 另一个表上使用组/计数来做到这一点,例如
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 fiddle,其中包含来自 table1 的计数查询,来自 table2 的计数并寻找一个从两者都计数的一个以及一个在 Table2 中获取所有记录的一个,其中 Table1 计数 >(sqlfiddle 中的注释)
【问题讨论】:
-
作为一项更新以使生活更轻松,我在 Table2 中运行并存储了计数,因此我可以查询这些,但很高兴知道这对未来的用户是否可行。
-
您可能想在您的问题中加入一些示例数据和所需的结果。正如所写,很难理解您的要求。使用
count等聚合方法时,您应该定义要聚合的字段。 Mysql 比其他数据库稍微宽松一些,并且通常允许一些带有意外结果的语法。 -
正如@sgeddes 明智的建议,给一个sqlfiddle之类的,这样我们就可以优化这个
-
@sgeddes 感谢并根据您的建议添加