Соединения 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 |
Список псевдонимов (алиасов) столбцов производной таблицы или список столбцов по которым происходит эквисоединение. |