Продвижение сайта по поисковым запросам, контекстная реклама, качественный копирайтинг и рерайтинг, создание сайта под ключ, QA процедуры и аудит в ИТ, бизнес анализ в Киеве, Украина.

Поиск

Админ

Как сформировать соотнесенный подзапрос


Как сформировать соотнесенный подзапрос

Когда вы используете подзапросы в SQL, вы можете обратиться к внутреннему запросу таблицы в предложении внешнего запроса FROM, сформировав соотнесенный подзапрос. Когда вы делаете это, подзапрос выполняется неоднократно, по одному разу для каждой строки таблицы основного запроса.

Соотнесенный подзапрос — один из большого количества тонких понятий в SQL из-за сложности в его оценке.

Если вы сумеете овладеть им, вы найдете, что он очень мощный, потому что может выполнять сложные функции с помощью очень лаконичных указаний.

Например, имеется один способ найти всех заказчиков в Заказах на 3-е Октября (вывод показывается в Рисунке 11.1):

SELECT *
FROM Customers outer
WHERE 10/03/1990 IN (SELECT odate
FROM Orders inner
WHERE outer.cnum = inner.cnum);

===============  SQL Execution Log ============
| SELECT *                                      |
| FROM  Customers outer                         |
| WHERE 10/03/1990 IN                           |
| (SELECT odate                                 |
| FROM Orders inner                             |
| WHERE outer.cnum = inner.cnum);               |
| ============================================= |
|   cnum     cname     city    rating    snum   |
|  -----    --------   ----    ------   -----   |
|   2001    Hoffman    London     100    1001   |
|   2003    Liu        San Jose   200    1002   |
|   2008    Cisneros   San Jose   300    1007   |
|   2007    Pereira    Rome       100    1004   |
===============================================

Рисунок 11.1. Использование соотнесенного подзапроса.

Примечание. В СУБД Interbase "INNER" и "OUTER" являются ключевыми словами, описывающими тип объединения (JOIN TYPE) поэтому запрос должен быть изменен, например, так:

SELECT *
FROM Customers out
WHERE CAST('10/03/1990' AS DATE) IN (SELECT odate
FROM Orders inn
WHERE out.cnum = inn.cnum);

Популярность: 4%




Оставить комментарий или два


Навигация

Блог / Главная / Разработка / Как сформировать соотнесенный подзапрос

Инфо

Запись опубликовал admin 27 апреля 2010 года и разместил в рубрике Разработка.   Запись имеет метки:   К статье пока нет комментариев. Вы можете быть первым.  

Случайные записи

Порядок строк произволен Выбор ключевых слов для сайта Работа с нулевыми (NULL) значениями SQL Переупорядочивание столбцов SQL