SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Left Join и результат
Left Join и результат [сообщение #5123] Fri, 07 June 2024 15:25 Переход к следующему сообщению
slavakvs в настоящее время не в онлайне  slavakvs
Сообщений: 3
Зарегистрирован: June 2024
Junior Member
Всем здоровья.
Давно не использовал в запросах Left join, и столкнулся с такой ситуацией

первый запрос
SELECT u.id, U.U_Name , x.id_id,X.S_Kolvo
FROM dbo.T_Uslug U
left JOIN ( select b.id_id, b.S_Kolvo from dbo.T_ZSostav B WHERE B.T_Typ = 2 AND B.id_Zakaz = 102525 and b.id_id<1000000 ) X ON (U.id =X.id_id )
результат извлечено 363 записи

второй запрос

SELECT u.id, U.U_Name , x.id_id,X.S_Kolvo
FROM dbo.T_Uslug U
left JOIN dbo.T_ZSostav X ON (U.id = X.id_id)
WHERE X.T_Typ = 2 AND X.id_Zakaz = 102525 and x.id_id<1000000

вернул 87 записей
Вопрос почему второй запрос вернул данные как будто запрос Inner Join?
Re: Left Join и результат [сообщение #5124 является ответом на сообщение #5123] Fri, 07 June 2024 15:55 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 889
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
потому шо ты так просил.

ЗЫ: задача из учебника.
Re: Left Join и результат [сообщение #5126 является ответом на сообщение #5124] Fri, 07 June 2024 16:12 Переход к предыдущему сообщениюПереход к следующему сообщению
slavakvs в настоящее время не в онлайне  slavakvs
Сообщений: 3
Зарегистрирован: June 2024
Junior Member
МП писал(а) Fri, 07 June 2024 15:55
потому шо ты так просил.

ЗЫ: задача из учебника.
Я просил вот так
LEFT [OUTER] JOIN
Левое внешнее соединение возвращает все строки из таблицы, указанной слева от слова JOIN. Если для некоторых строк из левой таблицы нет со ответствующих строк в правой, то они все равно не отбрасываются, при
этом в столбцы, соответствующие правой таблице, помещаются значения NULL.
Хорошим тоном считается не смешивать использование правых и левых соединений, а использовать всегда только левое соединение.

Если знаете, где я неверно просил, поправьте, или  не показывайте свою некомпетентность.
Re: Left Join и результат [сообщение #5127 является ответом на сообщение #5126] Fri, 07 June 2024 16:17 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 889
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
slavakvs
Я просил вот так
LEFT [OUTER] JOIN
нет.
Re: Left Join и результат [сообщение #5129 является ответом на сообщение #5127] Fri, 07 June 2024 18:40 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 369
Зарегистрирован: June 2022
Senior Member
Потому что Where уже за Join. Фильтрует итоговую выборку.
Re: Left Join и результат [сообщение #5132 является ответом на сообщение #5129] Fri, 07 June 2024 21:57 Переход к предыдущему сообщению
slavakvs в настоящее время не в онлайне  slavakvs
Сообщений: 3
Зарегистрирован: June 2024
Junior Member
BlackEric писал(а) Fri, 07 June 2024 18:40
Потому что Where уже за Join. Фильтрует итоговую выборку.
благодарствую, ваша правда.  Полистал книгу,  действительно, Ицик Бен-Ган - Microsoft SQL Server 2008. Основы T-SQL -2009 говорится
/index.php/fa/263/0/


  • Вложение: 2222.jpg
    (Размер: 102.78KB, Загружено 619 раз)
Предыдущая тема: Маркеры на полосе прокрутки для найденных значений
Следующая тема: Конвертировать бд из data в sql
Переход к форуму:
  


Текущее время: Mon Dec 30 20:02:51 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00994 секунд