Изучаем sql


Трехсторонние внешние соединения



Pdf көрінісі
бет181/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   177   178   179   180   181   182   183   184   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Трехсторонние внешние соединения
В некоторых случаях может потребоваться провести внешнее соедине
ние одной таблицы с двумя другими таблицами. Например, нужен
список всех счетов с указанием или имени и фамилии физического ли
ца, или названия фирмы для юридического лица:
mysql> 
SELECT a.account_id, a.product_cd,
> CONCAT(i.fname, ' ', i.lname) person_name,
> b.name business_name
> FROM account a LEFT OUTER JOIN individual i
> ON a.cust_id = i.cust_id
> LEFT OUTER JOIN business b
> ON a.cust_id = b.cust_id;
+++++
| account_id | product_cd | person_name | business_name |
+++++
| 1 | CHK | James Hadley | NULL |
| 2 | SAV | James Hadley | NULL |
| 3 | CD | James Hadley | NULL |
| 4 | CHK | Susan Tingley | NULL |
| 5 | SAV | Susan Tingley | NULL |
| 6 | CHK | Frank Tucker | NULL |
| 7 | MM | Frank Tucker | NULL |
| 8 | CHK | John Hayward | NULL |
| 9 | SAV | John Hayward | NULL |
| 10 | MM | John Hayward | NULL |
| 11 | CHK | Charles Frasier | NULL |
| 12 | CHK | John Spencer | NULL |
| 13 | CD | John Spencer | NULL |
| 14 | CD | Margaret Young | NULL |
| 15 | CHK | Louis Blake | NULL |
| 16 | SAV | Louis Blake | NULL |
| 17 | CHK | Richard Farley | NULL |
| 18 | MM | Richard Farley | NULL |
| 19 | CD | Richard Farley | NULL |
| 20 | CHK | NULL | Chilton Engineering |
| 21 | BUS | NULL | Chilton Engineering |
| 22 | BUS | NULL | Northeast Cooling Inc. |
| 23 | CHK | NULL | Superior Auto Body |
| 24 | SBL | NULL | AAA Insurance Inc. |
+++++
24 rows in set (0.00 sec)


202
Глава 10. И снова соединения
Результаты включают все 24 строки таблицы 
account
, а также имена
клиентов или названия фирм, поступающие из двух других таблиц
в результате внешнего соединения.
Мне не известны ограничения в MySQL, касающиеся количества таб
лиц, с которыми можно осуществлять внешнее соединение. Но чтобы
сократить число соединений в запросе, всегда можно воспользоваться
подзапросами. Например, предыдущий пример можно переписать так:
mysql> 


Достарыңызбен бөлісу:
1   ...   177   178   179   180   181   182   183   184   ...   261




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

    Басты бет