Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 когда использовать where , а когда join  [new]
Che0
Member

Откуда:
Сообщений: 299
ну вот к примеру можно вот так:
 SELECT ROLEID
  FROM STS_Ap].dbo.Users_Roles
  WHERE [USERI] in (
  
  SELECT  USERID
  FROM STS_App.dbo.BizUsers
  WHERE [USERSID]=SUSER_SID();
  )

а можно вот так:
    SELECT ROLEID
  FROM [STS_App].[dbo].[Users_Roles]
  inner join [STS_App].[dbo].[BizUsers] on [STS_App].[dbo].[Users_Roles].[UserID]= [STS_App].[dbo].[BizUsers].[UserID]
    WHERE [STS_App].[dbo].[BizUsers].[UserSID]=SUSER_SID()
сразу говорю что я знаю что делат join и что делает where. просто мало практики и возник такой вопрос.

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

Я ПРАВ?
12 июл 11, 15:04    [10961934]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Есть еще варинт №0 - EXISTS.
12 июл 11, 15:06    [10961968]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Оба варианта правильные, если они дают правильный ответ за правильное время.
12 июл 11, 15:07    [10961969]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
AmKad
Member

Откуда:
Сообщений: 5308
Che0,

А еще ты забыл сказать что второй вариант в отличие от первого может привести к "размножению" записей.
12 июл 11, 15:07    [10961973]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Che0
Member

Откуда:
Сообщений: 299
я не забыл я не знал.... и что такое размножение записей? и что прям нету особой разницы?
12 июл 11, 15:11    [10962021]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Che0
Member

Откуда:
Сообщений: 299
ну то есть я понимаю что результат один и тот же, но все таки
12 июл 11, 15:13    [10962041]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Che0
ну то есть я понимаю что результат один и тот же, но все таки
"Но все-таки" что?
12 июл 11, 15:13    [10962046]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
2NETClient: еще одна попытка потроллить - и бан схлопочете.
12 июл 11, 15:16    [10962081]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Che0
ну то есть я понимаю что результат один и тот же, но все таки
Результат разный вообще-то.
Иногда может совпадать.
12 июл 11, 15:17    [10962084]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
NETClient
Member

Откуда:
Сообщений: 461
Che0
и что прям нету особой разницы?

Ну если не считать "размножение" записей и отличие в алгоритме выполения как особую разницу, то считай нет.
12 июл 11, 15:43    [10962345]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
BestZvit
Member

Откуда: Гоблино
Сообщений: 2250
Просто очаровательное изречение:

Che0
сразу говорю что я знаю что делат join и что делает where.
12 июл 11, 15:53    [10962451]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
NETClient
Member

Откуда:
Сообщений: 461
BestZvit
Просто очаровательное изречение:

Che0
сразу говорю что я знаю что делат join и что делает where.

Ага, это он прочитал за 5 минут до того как создать топик, а страничку перелистнуть еще не решился.
12 июл 11, 15:55    [10962485]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Павел-П
Guest
NETClient
Che0
и что прям нету особой разницы?

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


А с чего вы взяли, что записи будут размножаться???
Это только Вам execution plan покажет, что будет происходить.
Собственно он и отвечает на вопрос есть ли различия или нет.
12 июл 11, 18:15    [10963699]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Павел-П
NETClient
пропущено...

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


А с чего вы взяли, что записи будут размножаться???
Это только Вам execution plan покажет, что будет происходить.
Собственно он и отвечает на вопрос есть ли различия или нет.


а при чём здесь план? "размножение" записей относится к логике запроса, то есть по его тексту это видно. При наличии одинаковых записей в STS_App.dbo.BizUsers второй запрос будет на них давать повторы roleId, а первый - нет
12 июл 11, 18:44    [10963828]     Ответить | Цитировать Сообщить модератору
 Re: когда использовать where , а когда join  [new]
Павел-П
Guest
Shakill,

Согласен, немного не доглядел. Хорошее замечание.
12 июл 11, 19:10    [10963968]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить