Соединения JOIN
Соединения объединяют данные из двух источников в один набор данных.Соединение данных осуществляется для каждой строки и обычно включает в себя проверку условия соединения (join condition) для того, чтобы определить, какие строки должны быть объединены и оказаться в результирующем наборе данных.
Результат соединения также может быть соединён с другим набором данных с помощью следующего соединения.
Существует несколько типов (INNER
, OUTER
) и классов (квалифицированные, натуральные, и др.) соединений, каждый из которых имеет свой синтаксис и правила.
SELECT ... FROM <table-reference> [, <table-reference> ...] [...] <table-reference> ::= <table-primary> | <joined-table> <table-primary> ::= <table-or-query-name> [[AS] correlation-name] | [LATERAL] <derived-table> [<correlation-or-recognition>] | <parenthesized-joined-table> <table-or-query-name> ::= table-name | query-name | [package-name.]procedure-name [(<procedure-args>)] <procedure-args> ::= <value-expression [, <value-expression> ...] <derived-table> ::= (<query-expression>) <correlation-or-recognition> ::= [AS] correlation-name [(<column-name-list>)] <column-name-list> ::= column-name [, column-name ...] <parenthesized-joined-table> ::= (<parenthesized-joined-table>) | (<joined-table>) <joined-table> ::= <cross-join> | <natural-join> | <qualified-join> <cross-join> :: = <table-reference> CROSS JOIN <table-primary> <natural-join> ::= <table-reference> NATURAL [<join-type>] JOIN <table-primary> <join-type> ::= INNER | { LEFT | RIGHT | FULL } [OUTER] <qualified-join> ::= <table-reference> [<join-type>] JOIN <table-primary> { ON <search-condition> | USING (<column-name-list>) }
Параметр | Описание |
---|---|
table-name |
Имя таблицы или представления. |
query-name |
Имя CTE. |
package-name |
Имя пакета. |
procedure-name |
Имя селективной хранимой процедуры. |
procedure-args |
Аргументы селективной хранимой процедуры. |
derived-table |
Производная таблица. |
correlation-name |
Псевдоним (алиас) источника данных (таблицы, представления, хранимой процедуры, CTE или производной таблицы). |
column-name |
Имя или алиас столбца источника данных (таблицы, представления, хранимой процедуры, CTE или производной таблицы). |
select-statement |
Произвольный SELECT запрос. |
search-condition |
Условие соединения. |
column-name-list |
Список псевдонимов (алиасов) столбцов производной таблицы или список столбцов по которым происходит эквисоединение. |