2015-09-02 2 views
1

У меня есть оператор sql, который выглядит следующим образом. Я пытаюсь выбрать все записи с дубликатами, а затем отображать каждую повторяющуюся запись.Ошибка поиска дубликатов MySQL в больших объединениях

Пусть говорят, что полученные данные из основной выборки содержит

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 

ответ

1

Это может быть не лучший способ сделать это, но вы можете использовать результаты, которые вы получили от «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 
+0

я сделал подзапрос на упрощенной версии себя внутри IN, и она работала, спасибо! – seesoe

Смежные вопросы