Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Сравнение левосторонних и правосторонних внешних соединений

Манипулирование данными с помощью связанных подзапросов | Использование подзапросов | Формирование таблиц | Подзапросы, ориентированные на задачи | Gt; SUM(avail_balance) tot_deposits _> FROM account | Подзапросы в условиях фильтрации | Подзапросы как генераторы выражений | Gt; SUM(a.avail_balance) tot_deposits _> FROM account a | Краткий обзор подзапросов | Упражнения |


Читайте также:
  1. X. Проверка прочности шпоночных соединений
  2. Аспекты конструирования изделий — стопорение резьбовых и других соединений
  3. Б) «Применение подразделений, частей и соединений со средствами
  4. В.2. Анионная полимеризация под действием соединений щелочных металлов.
  5. Виды и средства технического контроля сварных соединений технологического оборудования АЭС
  6. Виды сварных соединений
  7. Виды соединений в сети IP-телефонии.

 

В предыдущем разделе в примерах внешних соединений было задано left outer join. Ключевое слово left свидетельствует о том, что табли_


 

200 Глава 10. И снова соединения

ца, находящаяся в левой части блока from, отвечает за определение числа строк в результирующем наборе, а таблица в правой части пре_ доставляет значения столбцов в случае обнаружения соответствия. Рассмотрим следующий пример:

 

mysql> SELECT c.cust_id, b.name  
_> FROM customer c LEFT OUTER JOIN business b
_>   ON c.cust_id = b.cust_id;  
+_________+________________________+
| cust_id | name |
+_________+________________________+
|   | NULL |
|   | NULL |
|   | NULL |
|   | NULL |
|   | NULL |
|   | NULL |
|   | NULL |
|   | NULL |
|   | NULL |
|   | Chilton Engineering |

 

| 11 | Northeast Cooling Inc. |

 

|   | Superior Auto Body |
|   | 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. |

 

|   | Superior Auto Body |
|   | AAA Insurance Inc. |

 

+_________+________________________+ 4 rows in set (0.00 sec)


 

Теперь число строк результирующего набора определяется количест_ вом строк таблицы business. Вот почему в этом множестве всего четыре строки.


 

Внешние соединения  
   

 

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

 


Дата добавления: 2015-08-17; просмотров: 52 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Внешние соединения| Трехсторонние внешние соединения

mybiblioteka.su - 2015-2024 год. (0.006 сек.)