Der natürliche Verbund
 In der Praxis trifft man häufig den Fall an, dass nicht alle Daten in einer einzigen Tabelle vorliegen, sondern mehrere Tabellen existieren. An dieser Stelle kommen 
JOINS zum Einsatz, die dazu dienen, aus den Daten zweier Tabellen eine Ergebnistabelle zu bilden. Man unterscheidet zwischen INNER JOIN, LEFT (OUTER) JOIN, RIGHT (OUTER) JOIN und FULL (OUTER) JOIN.
Für das bessere Verständnis soll die betrachtete Tabelle Schueler um ein weiteres Attribut erweitert werden: GTA_id. Zusätzlich existiert jetzt neben der Tabelle Schueler eine Tabelle GTA. Im Folgenden werden die genannten Join-Arten auf diesen Tabellen angewendet, um die Unterschiede besser darstellen zu können.
Schueler
| S_Nr | Nachname | Vorname | Klasse | GTA_Nr | 
|---|---|---|---|---|
| 1 | Kluge | Luca | 10b | null | 
| 2 | Ackermann | Katrin | 9a | 2 | 
| 3 | Boehm | Uwe | 8c | 1 | 
GTA
| GTA_Nr | Beschreibung | 
|---|---|
| 1 | Schach | 
| 2 | Tastaturschreiben | 
| 3 | Jugend forscht | 
(INNER) JOIN
Der Inner Join liefert alle Daten zurück, die entsprechend der Bedingung (mit ON mitgeteilt) übereinstimmen.
SELECT Schueler.Vorname, GTA.Bezeichnung
FROM Schueler
INNER JOIN GTA
ON Schueler.GTA_Nr = GTA.GTA_Nr;
| Vorname | Bezeichnung | 
|---|---|
| Katrin | Tastaturschreiben | 
| Uwe | Schach | 
LEFT (OUTER) JOIN
Der LEFT OUTER JOIN liefert alle Daten der linken Tabelle zurück und weist ihnen die Daten der rechten Tabelle entsprechend der Bedingung zu.
SELECT Schueler.Vorname, GTA.Bezeichnung
FROM Schueler
LEFT JOIN GTA
ON Schueler.GTA_Nr = GTA.GTA_Nr;
| Vorname | Bezeichnung | 
|---|---|
| Luca | null | 
| Katrin | Tastaturschreiben | 
| Uwe | Schach | 
RIGHT (OUTER) JOIN
Der RIGHT (OUTER) JOIN liefert alle Daten der rechten Tabelle zurück und weist ihnen die Daten der linken Tabelle entsprechend der Bedingung zu.
SELECT Schueler.Vorname, GTA.Bezeichnung
FROM Schueler
RIGHT JOIN GTA
ON Schueler.GTA_Nr = GTA.GTA_Nr;
| Vorname | Bezeichnung | 
|---|---|
| Katrin | Tastaturschreiben | 
| Uwe | Schach | 
| null | Jugend forscht | 
FULL (OUTER) JOIN
Der FULL (OUTER) JOIN liefert alle Daten aus beiden Tabellen zurück und ordnet sie entsprechend der Bedingung einander zu.
SELECT Schueler.Vorname, GTA.Bezeichnung
FROM Schueler
FULL OUTER JOIN GTA
ON Schueler.GTA_Nr = GTA.GTA_Nr;
| Vorname | Bezeichnung | 
|---|---|
| Katrin | Tastaturschreiben | 
| Uwe | Schach | 
| Kluge | null | 
| null | Jugend forscht |