Im Gegensatz zum Equi-Join werden beim Outer-Join auch diejenigen Tupel der linken (left outer join) bzw. der rechten (right outer join) Relation in die Ergebnisrelation mit aufgenommen, welche keinen Join-Partner finden. Die nicht vorhandenen Attribute der Join-Relation werden mit Nullwerten aufgefüllt. Die Kombination aus Left- und Right-Outer-Join wird Outer-Join oder Full-Outer-Join genannt. Dabei werden alle Tupel in die Ergebnisrelation aufgenommen und jene Attribute eines Tupels mit Nullwerten aufgefüllt, die keinen Join-Partner in der jeweils anderen Relation gefunden haben.

Der Outer-Join kann mit oder ohne (natural outer join) Join-Bedingung verwendet werden. Der Outer-Join wird auch Inklusionsverbund genannt.

Natural-Left-Outer-Join

Beispiel

R:
ABCD
1234
4567
7890
S:
AFG
123
789
888
NATURAL LEFT OUTER JOIN(R, S):
ABCDFG
123423
4567NULLNULL
789089

SQL

SELECT * FROM R NATURAL LEFT OUTER JOIN S;

Left-Outer-Join

Beispiel

R:
ABCD
1234
4567
7890
S:
AFG
123
789
888
LEFT OUTER JOIN(R, R.A = S.A, S):
ABCDAFG
1234123
4567NULLNULLNULL
7890789

SQL

SELECT * FROM R LEFT OUTER JOIN S ON R.A=S.A;

Natural-Right-Outer-Join

Beispiel

R:
ABCD
1234
4567
7890
S:
AFG
123
789
888
NATURAL RIGHT OUTER JOIN(R, S):
ABCDFG
123423
789089
8NULLNULLNULL88

SQL

SELECT * FROM R NATURAL RIGHT OUTER JOIN S;

Right-Outer-Join

Beispiel

R:
ABCD
1234
4567
7890
S:
AFG
123
789
888
RIGHT OUTER JOIN(R, R.A = S.A, S):
ABCDAFG
1234123
7890789
NULLNULLNULLNULL888

SQL

SELECT * FROM R RIGHT OUTER JOIN S ON R.A=S.A;

Full-Outer-Join

Beispiel

R:
ABCD
1234
4567
7890
S:
AFG
123
789
946
FULL OUTER JOIN(S, R):
AFGBCD
123234
4NULLNULL567
789890
946NULLNULLNULL

SQL

SELECT * FROM S FULL OUTER JOIN R USING(A);


This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.