2015-02-11 15 views
1

Моей конструкции:Выбрать без повторяющихся значений в одном столбце

INSERT INTO ... (SELECT ... FROM .. JOIN ... ON ... WHERE ... ORDER BY ...) 

Краткого описания: Я использую Выберите для вставки данных из 2 таблиц (с использованием JOIN) в другую таблицу. Результат Выберите что-то вроде (после того, по):

col_a | col_b | col_c |  col_d 

1111  44   xxx   yyy 
1111  66   xxx   yyy 
2222  12   aaa   bbb 
3333  55   ccc   ddd 
3333  68   xxx   yyy 

Если строка дублируется (col_c) я хочу, чтобы вставить в мой стол первый согласованный ряд.

Пример результата должен быть таким:

col_a | col_b | col_c |  col_d 

1111  44   xxx   yyy 
2222  12   aaa   bbb 
3333  55   ccc   ddd 
+1

Пожалуйста, добавьте запрос, как будто у вас уже есть .... на каком столбце вы хотите заказать? И вы только хотите проверить дубликат в col_c? – arnoudhgz

+0

Используйте вставку .. на дубликате, как описано [здесь] (http://stackoverflow.com/questions/13041023/insert-on-duplicate-key-update-nothing-using-mysql/13041065#13041065) –

ответ

2

Использование GROUP BY функции

(SELECT ... FROM .. JOIN ... ON ... WHERE ... ORDER BY ... GROUP BY [col_c]) 
+0

GROUP BY исполняет до ORDER BY .. Я хочу сначала ЗАКАЗАТЬ мой результат, а затем устранить дубликаты – Krzysiek

0

Кажется, я нашел решение. Я создаю unique key для col в таблице. После этого INSERT IGNORE все, что мне нужно :)

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