Изучаем sql


Рекурсивные внешние соединения



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

Рекурсивные внешние соединения
В главе 5 была представлена концепция рекурсивного соединения, при
котором таблица соединяется сама с собой. Вот пример рекурсивного
соединения из главы 5, в котором таблица 
employee
соединяется сама
с собой для формирования списка сотрудников и их руководителей:
mysql> 
SELECT e.fname, e.lname,
> e_mgr.fname mgr_fname, e_mgr.lname mgr_lname
> FROM employee e INNER JOIN employee e_mgr
> ON e.superior_emp_id = e_mgr.emp_id;
+++++
| fname | lname | mgr_fname | mgr_lname |
+++++
| Susan | Barker | Michael | Smith |
| Robert | Tyler | Michael | Smith |
| Susan | Hawthorne | Robert | Tyler |
| John | Gooding | Susan | Hawthorne |
| Helen | Fleming | Susan | Hawthorne |
| Chris | Tucker | Helen | Fleming |
| Sarah | Parker | Helen | Fleming |
| Jane | Grossman | Helen | Fleming |
| Paula | Roberts | Susan | Hawthorne |
| Thomas | Ziegler | Paula | Roberts |
| Samantha | Jameson | Paula | Roberts |
| John | Blake | Susan | Hawthorne |
| Cindy | Mason | John | Blake |
| Frank | Portman | John | Blake |
| Theresa | Markham | Susan | Hawthorne |
| Beth | Fowler | Theresa | Markham |
| Rick | Tulman | Theresa | Markham |
+++++
17 rows in set (0.02 sec)
Этот запрос функционирует нормально за исключением одной малень
кой неувязки: в результирующий набор не включаются сотрудники,
у которых нет начальника. Однако после замены внутреннего соедине
ния на внешнее в результирующий набор попадают все сотрудники,
даже те, у которых нет руководителя:
mysql> 
SELECT e.fname, e.lname,
> e_mgr.fname mgr_fname, e_mgr.lname mgr_lname
> FROM employee e LEFT OUTER JOIN employee e_mgr
> ON e.superior_emp_id = e_mgr.emp_id;
+++++
| fname | lname | mgr_fname | mgr_lname |


204

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




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

    Басты бет