Как выбрать строки из таблицы, которых нет в другой таблице? - PullRequest
2 голосов
/ 02 апреля 2011

У меня есть 2 таблицы - первая таблица содержит все уникальные данные (столбцы: название, исполнитель, альбом).Во второй таблице есть повторяющиеся данные или люди, которые ежедневно слушают RSS-канал.

Я хочу сохранить все данные из таблицы2 в таблицу1, но только если строка таблицы2 не существует в таблице1.Мне нужен SQL-запрос, который вернет все строки таблицы 2, которых нет в таблице 1. Как?

Ответы [ 2 ]

4 голосов
/ 02 апреля 2011

Примерно так, наверное:

INSERT INTO Table1
(columns)
SELECT columns
FROM Table1
WHERE Table2.UniqueColumn NOT IN (SELECT UniqueColumn FROM Table1)

1 голос
/ 02 апреля 2011

Предполагая, что столбцы title, artist, album существуют в Таблице2, и вы хотите добавить все строки из Таблицы2, где данная комбинация этих трех не существует в Таблице1, вы можете сделать что-то вроде:

Insert Table1( title, artist, album, ... )
Select title, artist, album, ...
From Table2
Where ( title, artist, album ) Not In   (
                                        Select title, artist, album
                                        From Table1
                                        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...