我有一个如下所示的 sql 语句。我试图选择所有具有重复的条目,然后显示每个重复的条目。
假设基本选择的结果数据有
1 green michigan column4 column5 column6
3 orange michigan column4 column5 column6
11 purple florida column4 column5 column6
14 pink arizona column4 column5 column6
15 purple texas column4 column5 column6
20 orange california column4 column5 column6
我想得到的结果是
20 orange california column4 column5 column6
3 orange michigan column4 column5 column6
11 purple florida column4 column5 column6
15 purple texas column4 column5 column6
我把这个添加到我的选择语句的末尾
GROUP BY join4.color
HAVING count(join4.color) > 2
不过我只是得到
3 orange michigan column4 column5 column6
15 purple texas column4 column5 column6
主选择看起来像这样
SELECT
join1.id,
join4.color,
join2.state,
table1.column4,
join5.column5,
table1.column6
FROM
table1
JOIN 1
LEFT JOIN 2
LEFT JOIN 3
LEFT JOIN 4
LEFT JOIN 5
WHERE
table1.active = 1
AND
table1.valid = 1
ORDER BY table1.column4 DESC
最佳答案
这可能不是最好的方法,但您可以使用从“GROUP BY”语句中获得的结果来仅提取具有在“GROUP BY”语句中的颜色的行。
所以用它作为子查询...
SELECT
join1.id,
join4.color,
join2.state,
table1.column4,
join5.column5,
table1.column6
FROM
table1
JOIN 1
LEFT JOIN 2
LEFT JOIN 3
LEFT JOIN 4
LEFT JOIN 5
WHERE
table1.active = 1
AND
table1.valid = 1
AND
join4.Color IN (SELECT Color
FROM JOIN4
GROUP BY join4.color
HAVING count(join4.color) > 2)
ORDER BY table1.column4 DESC
关于大连接上的 MySQL 重复条目检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32362181/