【发布时间】:2012-09-18 10:42:48
【问题描述】:
我无法对内部联接的结果进行计数/分组
我有两张桌子
results_dump:有两列:email和result(结果值可以是open或bounce)all_data:包含三列:email、full_name和address
第一个目标是查询 result_dump 表,并对特定的email 结果为"open" 的次数进行计数和分组。
这个查询很好用:
SELECT `email`, COUNT(*) AS count
FROM `result_dump`
WHERE `date` = "open"
GROUP BY `email`
HAVING COUNT(*) > 3
ORDER BY count DESC
第二个目标是获取这些结果(任何“打开”超过 3 次的人)并输入“全名”和“地址”,这样我就可以获得有关谁打开电子邮件 3 次以上的详细信息。
我有这个查询,它可以将数据放在一起 - 但我不知道如何让 COUNT、HAVING 和 ORDER 与 INNER JOIN 一起使用?
SELECT *
FROM all_data
INNER JOIN result_dump ON
all_data.email = result_dump.email
where `result` = "open"
【问题讨论】:
-
好吧,您需要正确引用可分组对象。你这样做吗?例如:select a.email, count() as count from A a inner join B b on a.id=b.id where a.result = 'open' group by a.email 有 count( ) >= 3,按 count(*) desc 排序
-
我花了几个小时才明白(我是新手)——它奏效了。谢谢。
标签: mysql count group-by inner-join