Natural Joins
Um die Idee des benannten Spalten-Joins noch einen Schritt weiter zu gehen, führt ein natural join einen automatischen Equi-Join für alle Spalten mit dem gleichen Namen in der linken und rechten Tabelle durch.Die Datentypen dieser Spalten müssen kompatibel sein.
Note
|
Natural-Joins werden in Dialekt-1-Datenbanken nicht unterstützt. |
<natural-join> ::= NATURAL [<join-type>] JOIN <source> <join-type> ::= INNER | {LEFT | RIGHT | FULL} [OUTER]
Gegeben seien diese beiden Tabellen:
create table TA (
a bigint,
s varchar(12),
ins_date date
);
create table TB (
a bigint,
descr varchar(12),
x float,
ins_date date
);
Ein natürlicher Join von TA
und TB
würde die Spalten a
und ins_date
beinhalten, und die folgenden beiden Anweisungen hätten den gleichen Effekt:
select * from TA
natural join TB;
select * from TA
join TB using (a, ins_date);
Wie alle Joins sind natürliche Joins standardmäßig innere Joins, aber Sie können sie in äußere Joins umwandeln, indem Sie LEFT
, RIGHT
oder FULL
vor dem JOIN
-Schlüsselwort angeben.
Caution
|
Gibt es in den beiden Quellbeziehungen keine gleichnamigen Spalten, wird ein |