Изучаем sql


Соединение трех и более таблиц



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

Соединение трех и более таблиц
Соединение трех таблиц аналогично соединению двух, но есть неболь
шая хитрость. При соединении двух таблиц имеются две таблицы
и один тип соединения в блоке 
from
, а также единственный подблок 
on
,
определяющий, как соединяются таблицы. При соединении трех таб
лиц присутствуют три таблицы и два типа соединения в блоке 
from
,
а также два подблока 
on
. Вот еще один пример запроса с соединением
двух таблиц:
mysql> 
SELECT a.account_id, c.fed_id
> FROM account a INNER JOIN customer c
> ON a.cust_id = c.cust_id


98
Глава 5. Запрос к нескольким таблицам
> WHERE c.cust_type_cd = 'B';
+++
| account_id | fed_id |
+++
| 20 | 041111111 |
| 21 | 041111111 |
| 22 | 042222222 |
| 23 | 043333333 |
| 24 | 044444444 |
+++
5 rows in set (0.06 sec)
Этот запрос, возвращающий ID счета и идентификационный номер фе
дерального налога для всех бизнессчетов, на данный момент должен
быть абсолютно понятным. Однако если добавить в запрос таблицу 
emp
loyee
для получения имени операциониста, открывшего каждый из сче
тов, он примет следующий вид:
mysql> 
SELECT a.account_id, c.fed_id, e.fname, e.lname
> FROM account a INNER JOIN customer c
> ON a.cust_id = c.cust_id
> INNER JOIN employee e
> ON a.open_emp_id = e.emp_id
> WHERE c.cust_type_cd = 'B';
+++++
| account_id | fed_id | fname | lname |
+++++
| 20 | 041111111 | Theresa | Markham |
| 21 | 041111111 | Theresa | Markham |
| 22 | 042222222 | Paula | Roberts |
| 23 | 043333333 | Theresa | Markham |
| 24 | 044444444 | John | Blake |
+++++
5 rows in set (0.03 sec)
Теперь имеется три таблицы, два типа соединений и два подблока 
on
,
перечисленные в блоке 
from
. Таким образом, все немного усложняется.
На первый взгляд изза порядка перечисления таблиц может пока
заться, что таблица 
employee
соединяется с таблицей 
customer
, посколь
ку таблица 
account
указана первой. Однако если изменить порядок рас
положения таблиц, результаты будут абсолютно аналогичными:
mysql> 


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




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

    Басты бет