Изучаем sql


Сравнение условий соединения



Pdf көрінісі
бет96/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   92   93   94   95   96   97   98   99   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Сравнение условий соединения 
и условий фильтрации
Теперь мы знаем, что условия соединения относятся к подблоку 
on
, то
гда как условия фильтрации располагаются в блоке 
where
. Однако SQL
не налагает жестких ограничений на размещение условий, поэтому соз
давать запросы следует очень внимательно. Например, следующий за
прос соединяет две таблицы с помощью одного блока соединения и од
ного условия фильтрации в блоке 
where
:


106
Глава 5. Запрос к нескольким таблицам
mysql> 
SELECT a.account_id, a.product_cd, c.fed_id
> FROM account a INNER JOIN customer c
> ON a.cust_id = c.cust_id
> WHERE c.cust_type_cd = 'B';
++++
| account_id | product_cd | fed_id |
++++
| 20 | CHK | 041111111 |
| 21 | BUS | 041111111 |
| 22 | BUS | 042222222 |
| 23 | CHK | 043333333 |
| 24 | SBL | 044444444 |
++++
5 rows in set (0.08 sec)
Достаточно просто, но что произойдет, если по ошибке поместить усло
вие фильтрации в подблок 
on
, а не в блок 
where
?
mysql> 
SELECT a.account_id, a.product_cd, c.fed_id
> FROM account a INNER JOIN customer c
> ON a.cust_id = c.cust_id
> AND c.cust_type_cd = 'B';
++++
| account_id | product_cd | fed_id |
++++
| 20 | CHK | 041111111 |
| 21 | BUS | 041111111 |
| 22 | BUS | 042222222 |
| 23 | CHK | 043333333 |
| 24 | SBL | 044444444 |
++++
5 rows in set (0.00 sec)
Как видите, второй вариант, в котором 
оба
условия находятся в подбло
ке 
on
и нет блока 
where
, обеспечивает аналогичные результаты. А что ес
ли оба условия помещены в блок 
where
, но блок 
from
попрежнему ис
пользует ANSIсинтаксис соединения?
mysql> 


Достарыңызбен бөлісу:
1   ...   92   93   94   95   96   97   98   99   ...   261




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

    Басты бет