Я использую левое соединение в запросе Access, чтобы получить таблицу с добавленным столбцом, которая применяется только к нескольким строкам. Когда я использую подзапрос в качестве объединяемой таблицы, он дает мне окончательную таблицу с новым столбцом, имеющим одинаковое значение для всех строк. Когда я создаю таблицу, которая дает тот же самый вывод, что и подзапрос, он работает так, как я хочу. Почему подзапрос и таблица дают разные результаты, если они выглядят одинаково.
Я просмотрел другие вопросы о разнице между таблицей и производной таблицей (что, по-моему, я получаю, используя подзапрос), и, похоже, между ними нет разницы.
SELECT *
FROM Table1
LEFT JOIN
(SELECT *, "P" AS PColumn FROM TableX, TableY WHERE TableX.x = TableY.y) AS Table2
ON (Table1.x = Table2.x)
WHERE Table1.X > 2
Каждое значение в PColumn "P". Когда я создаю таблицу, которая выглядит точно так же, как результат подзапроса, и использую ее вместо подзапроса, только строка 5 имеет значение PColumn «P», а остальные значения равны нулю, чего я и хочу. Подзапрос и таблица имеют одинаковые значения, но разные выходные данные во внешнем операторе SELECT