JOIN Predicate (join_predicate)
A JOIN
predicate (join_predicate
) is a predicate that specifies a join. A join is an SQL statement that links several tables with one
another and returns a join table as its result. A JOIN
predicate can be specified with or without an OUTER JOIN
indicator.
Syntax
<join_predicate> ::=
<expression> [<outer_join_indicator>]
<comp_op> <expression> [<outer_join_indicator>]
<outer_join_indicator> ::=
(+) <! This SQL clause is
no longer recommended to be used
and might be removed from future versions. !>
<comp_op> ::=
<
| >
| <>
| !=
| =
| <=
| >=
| ~= <! for computers with ASCII code !>
| ~< <! for computers with ASCII code !>
| ~> <! for computers with ASCII code !>SQL Tutorial, Joins: Information From Several Tables
The JOIN
predicate is a special type of comparison predicate. The rules for a comparison predicate apply here.
Each expression (expression
) specified in the JOIN
predicate must contain a column specification. The column specification of the first
expression and the column specification of the second expression must be specified in such a way that both column specifications refer to different table names or reference names. The value of the first expression and the value of the second expression must be comparable.
Only those rows from the table specified in the JOIN
predicate are transferred to the result table for which a row is found in the other table specified in the JOIN
predicate in accordance with the comparison (specified by the comparison
operator comp_op
).
Caution
This SQL clause is no longer recommended to be used and might be removed from future versions.
Only one OUTER JOIN
indicator (outer_join_indicator
) may be specified in a JOIN
predicate. If each row in a table (table A) specified in the JOIN
predicate is to appear
at least once in the result table, the OUTER JOIN
indicator must be specified on the side of the comparison operator where the other table (table B) is specified in the JOIN
predicate. Even if at least one counterpart is not found in table
B for a row in table A, the row in table A is still transferred to the result table. The NULL
value is then used for the output columns that are formed from the columns in table B.