Не используется Где, когда Правая сторона равна нулю - проблема с левым соединением - PullRequest
0 голосов
/ 11 октября 2010

У меня есть запрос:

Select a.Col1,b.Col2
From a
Left Join B b ON a.C = b.C
Where b.D ='someValue'

Но когда правая сторона равна нулю, я не получаю запись, поэтому Left Join не работает.

Знаете ли вы, как изменить этот запрос на правильный?

Ответы [ 2 ]

5 голосов
/ 11 октября 2010

Переместите дополнительное условие соединения в предложение on:

Select a.Col1,b.Col2
From a
Left Join B b ON a.C = b.C and b.D = 'someValue'
0 голосов
/ 11 октября 2010

Запрос ничего не возвращает, когда правая сторона равна нулю из-за предложения where.Если таблица b не указана, ваше условие where не будет выполнено.

Я не совсем уверен, как исправить ваш запрос.На мой взгляд, этот запрос указывает на то, что ссылка между обеими таблицами обязательна, и поэтому ваш результат семантически верен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...