Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2009, 19:04   #1
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию Кореллированные подзапросы

Ребята, скажите, чем отличается корелированный подзапрос от обычного. Я слышал, что корелированный отличается от обычного тем, что в корелированном вначале обрабатывается условие которое доходит до подзапроса, а потом только подзапрос, а в обычном, вначале обрабатывается внутренний подзапрос, а потом только сам общий запрос. Не скажите, очень нужно разобратся.
Вот к примеру обычный вложенный подзапрос:
Код:
SELECT N_ROOMS,N_OBSCHESHITIA
FROM STUD_ADR 
WHERE N_ROOMS IN
   (SELECT  N_ROOMS
       FROM STUD_ADR WHERE N_ROOMS > 400
 WHERE N_OBSCHESHITIA IN
       (SELECT N_OBSCHESHITIA 
           FROM STUD_ADR 
              WHERE N_OBSCHESHITIA = 'XAI-12'))
Как сделать тоже самое, только, чтоб он был корелированным?
Golovastik вне форума Ответить с цитированием
Старый 19.11.2009, 20:26   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

это вообще хрень какая-то, а не обычный запрос
Цитата:
Сообщение от Golovastik Посмотреть сообщение
Вот к примеру обычный вложенный подзапрос:
Код:
SELECT N_ROOMS,N_OBSCHESHITIA
FROM STUD_ADR 
WHERE N_ROOMS IN
   (SELECT  N_ROOMS
       FROM STUD_ADR WHERE N_ROOMS > 400
 WHERE N_OBSCHESHITIA IN
       (SELECT N_OBSCHESHITIA 
           FROM STUD_ADR 
              WHERE N_OBSCHESHITIA = 'XAI-12'))
точнее так - это скорее попытка реализовать кореллированный запрос, но неудачная, потому что это все можно написать одним запросом так
Код:
select 
  n_rooms,
  n_obscheshitia
from stud_adr 
where 0=0
   and n_rooms > 400
   and n_obscheshitia = 'XAI-12'
кореллированным нужно искать, например, все комнаты с максимальным кол-вом поселившихся за период С.. ПО ...
soleil@mmc вне форума Ответить с цитированием
Старый 19.11.2009, 20:35   #3
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Это я знаю, а корелированный, скажите, как сделать с этого, просто мне нужно понять смысл корелированных подзапросов. Хочу увидеть отличие.
А выше пример - это вложенный подзапрос. Кто знает как сделать корелированный, напишите пожалуйста.

Последний раз редактировалось Golovastik; 19.11.2009 в 21:30.
Golovastik вне форума Ответить с цитированием
Старый 19.11.2009, 21:08   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вот тут посмотрите. И примеров там полно:
http://www.sql.ru/articles/mssql/200...Subquery.shtml
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подзапросы Dawystrik SQL, базы данных 3 25.09.2009 20:14