Mysql 从表中选择第1列和第2列中的entrie相同的所有行
我有一个表a,其中包含几个带有条目的列。第1列中是活动名称,可以出现多次(在表中)。第2列是订单日期。第3列是该活动的成功投递邮件数 现在我要做的是:我要选择所有列,其中第1列中的条目相同,第2列中的条目相同(仅其中一个是不够的) 下面是一个例子: 例如,如果表A包含:Mysql 从表中选择第1列和第2列中的entrie相同的所有行,mysql,Mysql,我有一个表a,其中包含几个带有条目的列。第1列中是活动名称,可以出现多次(在表中)。第2列是订单日期。第3列是该活动的成功投递邮件数 现在我要做的是:我要选择所有列,其中第1列中的条目相同,第2列中的条目相同(仅其中一个是不够的) 下面是一个例子: 例如,如果表A包含: |col1 ||col2 ||col3| +--------------------------------+---------------+------
|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;
->但这不正常…您还需要按日期分组:
SELECT T1.*
FROM TableA T1
JOIN ( SELECT col1
FROM TableA
GROUP BY col1, col2
HAVING COUNT(*) >= 2 ) T2 ON T1.col1 = T2.col1;