Цель:
Намерение этого запроса состоит в том, чтобы выбрать все отличные значения в одном столбце, который не существует в подобном столбце в другой таблице.
Текущий запрос:
SELECT DISTINCT Table1.Column1
FROM Table2, Table1
WHERE Table1.Column1 <> Table2.Column1
Результаты запроса:
То, что происходит, когда я пытаюсь работать, этот запрос является индикатором выполнения, заполняется почти сразу, но тогда он в значительной степени замораживает и не делает ничего больше насколько я вижу. Когда я использую = знак вместо <>, он производит значения, которые равны очень хорошо и если я заменяю Table2. Column1 с фактическим фактическим значением это работает просто великолепно.
Я просто выполнил его снова при вводе этого вопроса, и вышеупомянутый запрос дал мне ответ на этот раз, но это имеет все ОТЛИЧНЫЕ значения для столбца не все значения, уникальные для просто, что таблица как он должна.
Какие-либо идеи о том, что я делаю неправильно или пропускаю здесь?
Подобно этому
SELECT DISTINCT Table1.Column1
FROM Table1
WHERE NOT EXISTS( SELECT * FROM Table2
WHERE Table1.Column1 = Table2.Column1 )
Вы хотите НЕ ВЫХОДИТЬ, а не "Не Равно"
Кстати, вы редко захотите писать ОТ FROM пункта, подобного этому:
FROM Table1, Table2
так как это означает "ОТ всех комбинаций каждой строки в Таблице 1 с каждой строкой в Таблице 2...". Обычно это намного больше строк результата, чем вы когда-либо захотите увидеть. И в редких случаях, когда Вы действительно хотите это сделать, более приемлемый синтаксис:
FROM Table1 CROSS JOIN Table2
В Access вы, вероятно, обнаружите, что соединение выполняется быстрее, если только ваши таблицы очень малы:
SELECT DISTINCT Table1.Column1
FROM Table1
LEFT JOIN Table2
ON Table1.Column1 = Table2.Column1
WHERE Table2.Column1 Is Null
Это исключит из списка все записи, совпадающие с таблицей Table2.