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
Достарыңызбен бөлісу: