Изучаем sql


> AND e.assigned_branch_id = b.branch_id



Pdf көрінісі
бет87/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   83   84   85   86   87   88   89   90   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

> AND e.assigned_branch_id = b.branch_id
> AND (e.title = 'Teller' OR e.title = 'Head Teller')
> AND b.name = 'Woburn Branch';
+++++
| account_id | cust_id | open_date | product_cd |
+++++
| 1 | 1 | 20000115 | CHK |
| 2 | 1 | 20000115 | SAV |
| 3 | 1 | 20040630 | CD |
| 4 | 2 | 20010312 | CHK |
| 5 | 2 | 20010312 | SAV |


Соединение трех и более таблиц
97
| 14 | 7 | 20040112 | CD |
| 22 | 11 | 20040322 | BUS |
+++++
7 rows in set (0.01 sec)
В этом запросе не так просто определить, какие условия блока 
where
являются условиями соединения, а какие – условиями фильтрации.
Также не вполне очевидно, какой тип соединения используется (для
установления типа соединения необходимо внимательно рассмотреть
условия соединения в блоке 
where
– нет ли там какихлибо специаль
ных символов), и сложно определить, не были ли упущены какиелибо
условия соединения. Вот тот же запрос, записанный с использованием
синтаксиса соединения SQL92:
mysql> 
SELECT a.account_id, a.cust_id, a.open_date, a.product_cd

FROM account a INNER JOIN employee e
>
ON a.open_emp_id = e.emp_id
>
INNER JOIN branch b
>
ON e.assigned_branch_id = b.branch_id

WHERE e.start_date <= '20030101'
>
AND (e.title = 'Teller' OR e.title = 'Head Teller')
>
AND b.name = 'Woburn Branch';
+++++
| account_id | cust_id | open_date | product_cd |
+++++
| 1 | 1 | 20000115 | CHK |
| 2 | 1 | 20000115 | SAV |
| 3 | 1 | 20040630 | CD |
| 4 | 2 | 20010312 | CHK |
| 5 | 2 | 20010312 | SAV |
| 14 | 7 | 20040112 | CD |
| 22 | 11 | 20040322 | BUS |
+++++
7 rows in set (0.36 sec)
Надеюсь, все согласятся, что понятнее версия, использующая синтак
сис SQL92.


Достарыңызбен бөлісу:
1   ...   83   84   85   86   87   88   89   90   ...   261




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

    Басты бет