![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
~OUTER ~ INNER JOIN
+JOIN+ © (2006-10-20 12:01:00)Здравствуйте мастера.
Помогите понять пожалуйста, чем отличаются следующие операторы:
OUTER JOIN
LEFT OUTER JOIN
INNER JOIN
Я видел их в работе, но так и не могу понять принцип каждого из них.
(в мануалах которые у меня есть, я не смог найти описание этих команд)
Спасибо.
+JOIN+ (2006-10-20 12:44:00) [1]Спасибо всем.
Desdechado (2006-10-20 12:40:00) [2]LEFT или RIGHT означает только сторону в операторе соединения, которая быть обязана, вторая может не быть
ЮЮ (2006-10-20 12:39:00) [3]Наличие OUTER при наличии LEFT роли не играют.
Для INNER JOIN достатточно просто JOIN
Для OUTER JOIN указать какое, само OUTER опустить
a LEFT JOIN b
все записи из а, а из b - как придется
a RIGHT JOIN b
все записи из b, а из a - как придется. На практике не использую, т.к. связываю таблицы слева -направо
a
[LEFT] JOIN b ON ...
[LEFT] JOIN c ON ...
,,,
a FULL JOIN b
итоге будут все записи из а и b, а соответствуюшие им - как придется
как придется - означает, что вернутся NULL-евые поля таблицы, если соответствующих записей в ней нет
Anatoly Podgoretsky (2006-10-20 12:36:00) [4]
> А наличие оператора <LEFT> в OUTER JOIN играет какую-нибудь
> роль?
Играет, но это как раз в третью очередь, системно зависимо, но как правило это LEFT
Anatoly Podgoretsky (2006-10-20 12:34:00) [5]
> Я бы его ближе послал в Localsql.hlp :-)
Рано и опасно, нахватется верхов и будет постоянно приходить на форум с жалобой. Надо все таки теорию изучать в первую очередь, SQL во вторую и уж только в третью конкретный синтаксис.
+JOIN+ (2006-10-20 12:31:00) [6]> [3] Desdechado © (20.10.06 12:21)
Спасибо.
А наличие оператора<LEFT>в OUTER JOIN играет какую-нибудь роль?
Desdechado (2006-10-20 12:21:00) [7]Внешнее объединение дает возможность содеинять таблицы так, что в одной из них может не быть соответствия конкретному значению в другой таблице по соединяемым полям.
Внутреннее обязывает эти значения быть в обеих таблицах, иначе в результат выборки они не попадут.
Плохиш (2006-10-20 12:19:00) [8]Я бы его ближе послал в Localsql.hlp :-)
Anatoly Podgoretsky (2006-10-20 12:11:00) [9]Первые два левое внешнее соединение, а последнее внутреннее.
Советую почитать что ни будь по теории баз данных, например Дейта.