2013-11-25 8 views
0

У меня есть две таблицыКак выбрать уникальные записи из таблицы тузд

table1 

id|col1|col2|col3 

table2 

id|colA|colB|colC 

как таблица имеет как первичный ключ

col1 в table1 является уникальным и не допустит повторяющееся значение. Я пытаюсь перенести данные из таблицы2 в таблицу1. Столбцы отображается следующим образом

table1.id => table2.id 
table1.col1 => table2.colA 
table1.col2 => table2.colB 
table1.col3 => table2.colC 

Я использовал следующий запрос для переноса данных

inert into table1 select id,colA,colB,colC from table2 

Mysql жалуется COLA дублированного значения. Затем я использую

insert into table1 select id,distinct(colA),colB,colC from table2 

Mysql жалуется на плохой синтаксис. Не могли бы вы помочь мне написать правильный запрос для переноса данных из таблицы2 в таблицу1.

Благодаря

+0

ли 'table1' пустует? –

+0

@ypercube - да, в данный момент он пуст – Ashish

+1

И что должно произойти, если в 'table2' есть 2 или более строк с одинаковым значением в' colA'? Который должен быть вставлен в 'table1'? –

ответ

-1

На самом деле, вы можете потерять некоторые данные, экономя при этом таким образом. Потому что если colB и colC различаются для одной и той же COLA, только одна из строк будет сохранена.

Вы можете использовать этот запрос:

INSERT INTO table1 
    SELECT id,colA,colB,colC 
    FROM table2 
    GROUP BY colA; 
+0

-1 Это может фактически привести к значениям (в столбцах 'id',' colB' и 'colC'), которые приходят из ** разных ** строк в таблице2. –

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