Divakar Raj M Ответов: 2

Разница между подзапросом и коррелированным подзапросом


Является ли следующий фрагмент SQL-запроса обычным запросом или коррелированным подзапросом ??

select UserID,
                                          FirstName,
                                          LastName,
                                          DOB,
                                          GFName,
                                          GLName,                                      
                                          LoginName,
                                          LoginEffectiveDate,
                                          LoginExpiryDate,
                                          Password,
                                          Email,
                                          ReportingTo,
                                          Mobile,
                                          CommunicationPreference,
                                          IsActive
                                          from (
                                          select row_number() over (order by FirstName) as Row,
                                          UserID,
                                          FirstName,
                                          LastName,
                                          DOB,
                                          GFName,
                                          GLName,
                                          LoginName,
                                          LoginEffectiveDate,
                                          LoginExpiryDate,
                                          Password,
                                          Email,
                                          ReportingTo,                                    
                                          Mobile,
                                          CommunicationPreference,
                                          IsActive
                                          from DivakarUserRegistration 



Кроме того, может ли кто-нибудь указать разницу между ними обоими

Divakar Raj M

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

2 Ответов

Рейтинг:
2

Vedant Joshi

Подзапрос :- Внутренний запрос выполняется только один раз, когда внутренний запрос будет выполнен первым, а вывод внутреннего запроса используется внешним запросом.Внутренний запрос не зависит от внешнего запроса.

Напр.:- Выберите cust_name, dept_no FROM Customer WHERE cust_name IN (выберите cust_name FROM Customer);

Связанный вложенный запрос:- Внешний запрос будет выполнен первым, и для каждой строки внешнего запроса будет выполнен внутренний запрос. Таким образом, внутренний запрос будет выполняться столько раз, сколько нет строк в результате внешнего запроса.Вывод внешнего запроса может использовать вывод внутреннего запроса для сравнения. Это означает, что внутренний запрос и внешний запрос зависят друг от друга

Напр.:- Выберите cust_name, dept_id из Cust
Где cust_name в (выберите cust_name из отдела, где абон.dept_id, в=отдел.dept_id, в);


Divakar Raj M

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

Рейтинг:
2

NavakumarM

Приведенный выше запрос является подзапросом.

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