Изучаем sql


> ON c.cust_id = b.cust_id



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

> ON c.cust_id = b.cust_id;
+++
| cust_id | name |
+++
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
| 4 | NULL |
| 5 | NULL |
| 6 | NULL |
| 7 | NULL |
| 8 | NULL |
| 9 | NULL |
| 10 | Chilton Engineering |
| 11 | Northeast Cooling Inc. |
| 12 | Superior Auto Body |
| 13 | AAA Insurance Inc. |
+++
13 rows in set (0.00 sec)
Блок 
from
определяет левостороннее внешнее соединение. Таким обра
зом, в результирующий набор входят все 13 строк таблицы 
customer
,
а таблица 
business
поставляет значения во второй столбец результи
рующего набора для четырех клиентовюридических лиц. Если вы
полнить такой же запрос, но указать правостороннее внешнее соедине
ние, будет получен следующий результат:
mysql> 
SELECT c.cust_id, b.name
> FROM customer c RIGHT OUTER JOIN business b
> ON c.cust_id = b.cust_id;
+++
| cust_id | name |
+++
| 10 | Chilton Engineering |
| 11 | Northeast Cooling Inc. |
| 12 | Superior Auto Body |
| 13 | AAA Insurance Inc. |
+++
4 rows in set (0.00 sec)
Теперь число строк результирующего набора определяется количест
вом строк таблицы 
business
. Вот почему в этом множестве всего четыре
строки.


Внешние соединения
201
Помните, что оба запроса осуществляют внешние соединения. Ключе
вые слова 
left
и 
right
просто сообщают оптимизатору БД, какая табли
ца может иметь пробелы в данных. Если нужно провести внешнее со
единение таблиц А и В таким образом, чтобы в результирующий набор
входили все строки из А и те строки из В, для которых есть соответст
вующие данные, можно задать или 
A
left
outer
join
B
, или 
B
right
outer
join
A
.


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




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

    Басты бет