SQL: выберите ключи, которых нет в одной таблице

Я получил таблицу с нормальной настройкой auto inc. Идентификаторов. Некоторые строки были удалены, поэтому список идентификаторов мог выглядеть примерно так:

] (1, 2, 3, 5, 8, ...)

Затем из другого источника ( Изменить: Другой источник = НЕ в базе данных ) У меня есть этот массив:

( 1, 3, 4, 5, 7, 8)

Я ищу запрос, который можно использовать в базе данных, чтобы получить список идентификаторов: НЕ в таблице из имеющегося у меня массива. Это будет:

(4, 7)

Существуют ли такие? Мое решение прямо сейчас заключается в создании временной таблицы, чтобы работала команда "WHERE table.id IS NULL", или, что еще хуже, с использованием функции PHP array_diff, чтобы узнать, что отсутствует после получения всех идентификаторов из таблицы.

Поскольку список идентификаторов сокращается до миллионов строк, я очень хочу найти лучшее решение.

Спасибо! / Thomas

Edit 2:

Мое основное приложение - это довольно простая таблица, заполненная множеством строк. Это приложение управляется с помощью браузера, и я использую PHP в качестве интерпретатора кода.

Все в этой таблице должно быть экспортировано в другую систему (которая является сторонним продуктом), и пока что нет другого способа сделать это, кроме вручную, используя функцию импорта в этой программе. Также есть возможность вставлять новые строки в другую систему, хотя согласованная маршрутизация никогда не допускает этого.

Проблема в том, что моя система не может быть на 100% уверена, что пользователь сделал все правильно с того момента, когда он / она нажал ключ "экспорт". Или, что в другой системе никогда не создавались строки.

Из другой системы я могу получить CSV-файл, содержащий все строки, которые есть в этой системе. Итак, сравнив файл CSV и мою таблицу, я могу увидеть, что: * В другой системе отсутствуют строки, которые следовало импортировать * Если кто-то создал строки в другой системе

Проблема не в "решении". Это лучшее решение, так как в строках так много данных.

Еще раз спасибо!

/ Thomas

12
задан Thomas 18 July 2011 в 11:22
поделиться