Изучаем sql



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


Глава 10. И снова соединения
+++++
| Michael | Smith | NULL | NULL |
| 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 |
+++++
18 rows in set (0.00 sec)
Результирующий набор теперь включает Майкла Смита (Michael Smith),
который является президентом банка, следовательно, начальника у не
го нет. Для формирования списка всех сотрудников и их начальников,
если таковые имеются, запрос использует левостороннее внешнее со
единение. Если сделать внешнее соединение правосторонним, будут
получены следующие результаты:
mysql>
SELECT e.fname, e.lname,
> e_mgr.fname mgr_fname, e_mgr.lname mgr_lname
> FROM employee e RIGHT OUTER 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 |
| NULL | NULL | Susan | Barker |
| Susan | Hawthorne | Robert | Tyler |
| John | Gooding | Susan | Hawthorne |
| Helen | Fleming | Susan | Hawthorne |
| Paula | Roberts | Susan | Hawthorne |
| John | Blake | Susan | Hawthorne |
| Theresa | Markham | Susan | Hawthorne |
| NULL | NULL | John | Gooding |
| Chris | Tucker | Helen | Fleming |
| Sarah | Parker | Helen | Fleming |
| Jane | Grossman | Helen | Fleming |
| NULL | NULL | Chris | Tucker |
| NULL | NULL | Sarah | Parker |


Перекрестные соединения
205
| NULL | NULL | Jane | Grossman |
| Thomas | Ziegler | Paula | Roberts |
| Samantha | Jameson | Paula | Roberts |
| NULL | NULL | Thomas | Ziegler |
| NULL | NULL | Samantha | Jameson |
| Cindy | Mason | John | Blake |
| Frank | Portman | John | Blake |
| NULL | NULL | Cindy | Mason |
| NULL | NULL | Frank | Portman |
| Beth | Fowler | Theresa | Markham |
| Rick | Tulman | Theresa | Markham |
| NULL | NULL | Beth | Fowler |
| NULL | NULL | Rick | Tulman |
+++++
28 rows in set (0.00 sec)
По этому запросу выбираются все руководители (попрежнему третий
и четвертый столбцы) вместе со всеми их подчиненными. Поэтому
Майкл Смит появляется дважды – как начальник Сьюзен Баркер (Su
san Barker) и Роберта Тайлера (Robert Tyler). Сьюзен Баркер появляет
ся один раз, она никем не руководит (значения 
null
в первом и втором
столбцах). Все 18 сотрудников появляются в третьем и четвертом столб
цах, по крайней мере, один раз. Некоторые появляются несколько раз,
если у них в подчинении несколько сотрудников. Таким образом, в ре
зультирующем наборе 28 строк. Этот результат очень отличается от
результата предыдущего запроса, а обеспечен он изменением всего од
ного ключевого слова (
left
на 
right
). Следовательно, при использова
нии внешнего соединения необходимо тщательно продумывать, каким
оно должно быть – левосторонним или правосторонним.


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




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

    Басты бет