Как вставить отдельные записи из таблицы A в таблицу B (обе таблицы имеют одинаковую структуру)

Я хочу вставить только отдельные записи из таблицы «А» в таблицу «Б». Предположим, что обе таблицы имеют одинаковую структуру.


person Ramesh    schedule 02.03.2011    source источник
comment
Под «Отличными» вы подразумеваете только записи, которых нет в таблице B? Вы имеете в виду записи, которые встречаются в таблице А только один раз? Будьте более конкретными и расскажите нам, какую СУБД вы используете.   -  person JNK    schedule 02.03.2011


Ответы (3)


Если под DISTINCT вы подразумеваете уникальные записи в таблице B, которых еще нет в таблице A, выполните следующие действия:

INSERT INTO TableB(Col1, Col2, Col3, ... , Coln)
SELECT DISTINCT A.Col1, A.Col2, A.Col3, ... , A.Coln
FROM TableA A
LEFT JOIN TableB B
ON A.KeyOfTableA = B.KeyOfTableB
WHERE B.KeyOfTableB IS NULL
person Lamak    schedule 02.03.2011

INSERT INTO B SELECT DISTINCT * FROM A

Возможно, вы не хотите, чтобы столбец id таблицы был частью отдельной проверки, поэтому используйте это решение, если это так: https://stackoverflow.com/a/5171345/453673

person TheJubilex    schedule 02.03.2011

person    schedule
comment
Да. Это запрос для использования. Не тот, что от TheJubilex. - person Nav; 22.11.2016