2013-05-13 2 views
4

У меня есть источник записи таблицы (содержит тонны информации), и у меня есть таблица, содержащая 1200 записей. Я хотел бы добавить в эту таблицу назначения (содержащую 1200 записей) любые записи, которые в настоящее время не существуют. критерии для моих вещей, чтобы быть суффиксом:Добавить Если элемент не существует в другой таблице?

"Not In ([TABLE - To Work].[Item Number])" 

Проблема заключается в том, что возвращается запись я хочу, обратно 1200 раз, а не один раз.

Для примера:

Table A:     Table B: 

Item Number     Item Number 
12345      45678 
45678 

«12345» будет добавлять в таблице B только один раз (и затем никогда не добавлять снова!) Я посмотрел на несколько решений, и я попытался с помощью непревзойденных мастеров запросов, но я не думайте, что это действительно то, что я хотел (он генерируется там, где число равно null). Что мне нужно сделать, чтобы этот вид взглянуть на всю область таблицы, а не на элемент по элементу (я предполагаю, почему он заполняется столько же раз, сколько и существующие записи)? На каком этапе я ухожу?

ответ

1

Общая форма запроса будет что-то вроде

INSERT INTO [Table B] ([Item Number]) 
SELECT [Table A].[Item Number] 
FROM [Table A] 
WHERE [Table A].[Item Number] NOT IN (SELECT [Item Number] FROM [Table B]); 

Обратите внимание, что [Таблица B] не в ЕКЕ основного запроса, только в ЕКЕ НЕ В подзапроса ,

0

Это работает для меня:

INSERT INTO [Table B] ([Item Number]) 
SELECT DISTINCT [Table A].[Item Number] 
FROM [Table A] LEFT JOIN [Table B] ON [Table A].[Item Number] = [Table B].[Item Number] 
WHERE ((([Table B].[Item Number]) Is Null)); 
+0

Добро пожаловать в SO, Shannon, ответ уже дан ... и оно было принято слишком. –

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