#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
сделал бы. Вам не нужно делать ничего дополнительного (за исключением выполнения условия соединения, которое вы пропустили, конечно).