Изучаем sql


Старшинство операций с множествами



Pdf көрінісі
бет106/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   102   103   104   105   106   107   108   109   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Старшинство операций с множествами
Если в составном запросе больше двух запросов, использующих разные
операторы работы с множествами, то для обеспечения желаемых ре
зультатов следует продумать порядок расположения этих запросов в со
ставном выражении. Рассмотрим следующее составное выражение из
трех запросов:
mysql> 
SELECT cust_id
> FROM account
> WHERE product_cd IN ('SAV', 'MM')
> UNION ALL
> SELECT a.cust_id
> FROM account a INNER JOIN branch b
> ON a.open_branch_id = b.branch_id
> WHERE b.name = 'Woburn Branch'
> UNION
> SELECT cust_id
> FROM account
> WHERE avail_balance BETWEEN 500 AND 2500;
++
| cust_id |
++
| 1 |
| 2 |
| 3 |
| 4 |
| 8 |
| 9 |
| 7 |
| 11 |
| 5 |
++
9 rows in set (0.00 sec)
Этот составной запрос включает три запроса, возвращающих набор не
уникальных ID клиентов. Первые два запроса разделены оператором
union
all
, а второй и третий – оператором 
union
. Может показаться, что
расположение операторов 
union
и 
union
all
не играет роли, но на самом


120
Глава 6. Работа с множествами
деле разница есть. Вот тот же составной запрос, в котором эти операто
ры поменялись местами:
mysql> 
SELECT cust_id
> FROM account
> WHERE product_cd IN ('SAV', 'MM')
> UNION
> SELECT a.cust_id
> FROM account a INNER JOIN branch b
> ON a.open_branch_id = b.branch_id
> WHERE b.name = 'Woburn Branch'
> UNION ALL
> SELECT cust_id
> FROM account


Достарыңызбен бөлісу:
1   ...   102   103   104   105   106   107   108   109   ...   261




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

    Басты бет