Оператор выбора со значениями по умолчанию

#sql #sql-server

#sql #sql-сервер

Вопрос:

Когда у меня есть оператор, подобный приведенному ниже, есть ли способ выбрать все значения из TableA, включая те, которые не подключаются к TableB (с значением b., равным нулю или пустым)? Спасибо за любую помощь.

 SELECT DISTINCT a.value, b.value 
FROM tableA a
LEFT JOIN tableB b ON ....
  

Комментарии:

1. То, что вы хотите, — это поведение по умолчанию для ЛЕВОГО соединения. Вы получите все строки таблицы.

2. Даже если я специально выбираю значение из b? Если это так, то я тупой, и моя проблема в другом. Спасибо!

3. Нет, если вы специально выбираете значение из b в предложении WHERE, тогда у вас есть ВНУТРЕННЕЕ соединение. Поместите условие в предложение ON вместо WHERE.

Ответ №1:

Описанное вами поведение — это именно то, что left join сделал бы. Вам не нужно делать ничего дополнительного (за исключением выполнения условия соединения, которое вы пропустили, конечно).