Изучаем sql


Использование подзапросов



Pdf көрінісі
бет163/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   159   160   161   162   163   164   165   166   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Использование подзапросов
Теперь, когда вы знакомы с разными типами подзапросов и разными
операторами, с помощью которых можно взаимодействовать с табли
цами, возвращенными подзапросами, пора рассмотреть множество
способов использования подзапросов для построения мощных SQLвы
ражений. В следующих трех разделах будет продемонстрировано, как
подзапросы могут участвовать в построении специальных таблиц, соз
дании условий и формировании столбцов значений в результирующих
наборах.


184
Глава 9. Подзапросы
Подзапросы как источники данных
Ранее в главе 3 говорилось, что в блоке 
from
выражения 
select
указыва
ются 
таблицы
, которые будут использоваться запросом. Поскольку
подзапрос формирует таблицу, содержащую строки и столбцы данных,
абсолютно допустимо включать подзапросы в блок 
from
. Хотя на пер
вый взгляд это может показаться любопытной возможностью без осо
бых преимуществ, но использование подзапросов в качестве таблиц –
один из самых мощных инструментов, доступных при написании за
просов. Вот простой пример:
mysql> 
SELECT d.dept_id, d.name, e_cnt.how_many num_employees
> FROM department d INNER JOIN
> (SELECT dept_id, COUNT(*) how_many
> FROM employee
> GROUP BY dept_id) e_cnt
> ON d.dept_id = e_cnt.dept_id;
++++
| dept_id | name | num_employees |
++++
| 1 | Operations | 14 |
| 2 | Loans | 1 |
| 3 | Administration | 3 |
++++
3 rows in set (0.04 sec)
В этом примере подзапрос формирует список ID отделов с указанием
количества сотрудников, приписанных к каждому отделу. Вот табли
ца, сформированная подзапросом:
mysql> 
SELECT dept_id, COUNT(*) how_many


Достарыңызбен бөлісу:
1   ...   159   160   161   162   163   164   165   166   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет