mysql - 从表中选择 col1 和 col2 中的条目相同的所有行

标签 mysql

我有一个表 A,其中包含几列条目。第 1 列是可以多次出现的事件名称(在表中)。第 2 列是订单日期。第 3 列是该事件成功投递的邮件数。

现在我想做的是:我想选择第 1 列中的条目相同且第 2 列中的条目相同的所有列(只有其中一个是不够的)

这是一个例子:

例如,如果表 A 包含:

|col1                           ||col2           ||col3|
+--------------------------------+---------------+------
|20161512_NL_Luxus_1_DE         ||2017-01-01     ||15 |
|20161217_LC_YoBirthdayNo_A_CH  ||2016-12-12     ||10 |
|20161512_NL_Luxus_1_DE         ||2017-01-01     ||10 |
|20161512_NL_SDT_4_DE           ||2017-02-11     ||1  |
|20170117_SV_YoBirthdayYes_A_DE ||2017-02-03     ||25 |
|20161512_NL_SDT_4_DE           ||2017-01-29     ||9  |        

我想要一个将选择的查询:

|col1                           ||col2           ||col3|
+--------------------------------+---------------+------
|20161512_NL_Luxus_1_DE         ||2017-01-01     ||15 |
|20161512_NL_Luxus_1_DE         ||2017-01-01     ||10 |

这是我目前得到的:

SELECT T1.* FROM TableA T1 JOIN 
(
    SELECT col1
    FROM TableA
    GROUP BY col1
    HAVING COUNT(*) >= 2 AND col2=col2
) T2
ON T1.col1 = T2.col1;

-> 但这不能正常工作...

最佳答案

您还需要GROUP BY日期:

SELECT T1.* 
FROM TableA T1 
JOIN ( SELECT col1 
       FROM TableA 
       GROUP BY col1, col2 
       HAVING COUNT(*) >= 2 ) T2 ON T1.col1 = T2.col1;

关于mysql - 从表中选择 col1 和 col2 中的条目相同的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42361769/

相关文章:

mysql - 使用空值将表转换为 CSV 引擎

mysql - 当我用信息填充表时,我是否会丢失表的 3NF

PHP:mssql UPDATE查询后实际更改的行数

mysql - 将 NodeJS 容器连接到 MySQL 数据库

mysql - TRUNCATE 所有匹配名称模式的表

mysql - 配置单元(或 MySQL): Finding event of different type with maximum timestamp

javascript - 如何使用数据库中的值执行 JavaScript 事件?

MySQL 插入具有大量列的数据库表(使用 jdbc)

mySQL 与 sqlite 别名不兼容?

php - php sql查询结果中unicode字符显示错误