0

我无法计算/分组内部连接的结果

我有两张桌子

  1. results_dump: 其中有两列: emailand result(结果值可以是openor bounce)

  2. all_data: 其中包含三列emailfull_nameaddress

第一个目标是查询 result_dump 表并计算和分组结果"open"针对特定email.

此查询效果很好:

SELECT `email`, COUNT(*) AS count
FROM `result_dump`
WHERE `date` = "open" 
GROUP BY `email`
HAVING COUNT(*) > 3
ORDER BY count DESC

第二个目标是获取这些结果(任何“打开”超过 3 次的人)并输入“全名”和“地址”,这样我就可以获得有关谁打开电子邮件 3 次以上的详细信息。

我有这个查询,它可以将数据放在一起 - 但我不知道如何获取COUNT和使用?HAVINGORDERINNER JOIN

SELECT *
FROM all_data
INNER JOIN result_dump ON 
all_data.email = result_dump.email
where `result` = "open" 
4

3 回答 3

4
SELECT email,name,count(*)
FROM all_data
INNER JOIN result_dump ON 
all_data.email = result_dump.email
where `result` = "open" 
group by result_dump.email
having count(*)>3
ORDER by count DESC

这个我觉得没什么问题。

于 2012-09-26T18:22:36.857 回答
1

尝试以下查询:

SELECT * FROM all_data AS a
INNER JOIN 
(SELECT * FROM result_dump where email IN 
                                    (SELECT `email`
                                     FROM `result_dump`
                                     WHERE `date` = "open" 
                                     GROUP BY `email`
                                     HAVING count(email) >3
                                     ORDER BY count(email) DESC)) AS b
ON a.email = b.email
WHERE b.`result` = "open" 
于 2012-09-26T18:27:04.840 回答
-1

这是工作正常...!试试这个。。

SELECT title.title
       ,count(*)
       ,title.production_year
       ,title.id as movie_id
       ,title.flag as language
       ,movie_info.info
FROM title INNER JOIN movie_info ON title.id=movie_info.movie_id;
于 2016-10-12T12:31:57.997 回答