У меня возникает проблема, которую я почему-то не могу понять. Я пытаюсь написать запрос, который объединяет две таблицы, в которых совпадение не может быть найдено в таблице. Например:
SELECT
Table1.IDField, Table2.IDField
FROM
Table1
LEFT OUTER JOIN
Table2 ON Table1.PersonID = Table2.PersonID
WHERE
(Table1.IDField = '12345')
AND (Table2.Category = 'Foo')
Если в Table2
нет совпадения, это ничего не возвращает. Однако мне нужно, чтобы он просто возвращал NULL для этого столбца, если нет совпадения и по-прежнему возвращает значение из Table1
.
Я изменил JOIN
со всем, что я могу придумать, но безрезультатно.
Table2.Category
может содержать несколько других значений, поэтому работа типа OR IS NULL
не будет работать.
Итак, если нет соответствия для Table2.Category = 'Foo'
, мне все равно нужно вернуть его:
Table1 | Table2
----------------
12345 | NULL
Любые предложения?