SQL-FROM
Anfragen über mehrere Relationen hinweg basieren konzeptionell auf dem kartesischen Produkt (FROM-Klausel deklariert:
- Implizites Kreuzprodukt (Cross Join): Werden Tabellen ohne explizite Join-Bedingung kommagetrennt aufgezählt, entsteht das kartesische Produkt. Die Filterung erfolgt nachgelagert im
WHERE-Block (funktional ein Theta-Join):
SELECT * FROM Tabelle1, Tabelle2 WHERE Tabelle1.ID = Tabelle2.RefID;
- Explizite Join-Syntax (ANSI-Standard): Tabellen werden direkt im
FROM-Block über dedizierte Operatoren verbunden. Dies erhöht die Lesbarkeit und trennt Verbundbedingungen strikt von Selektionsbedingungen:
- Inner Join:
Tabelle1 INNER JOIN Tabelle2 ON <Bedingung>(liefert nur matchende Tupel). - Natural Join:
Tabelle1 NATURAL JOIN Tabelle2(verbindet Tabellen automatisch über alle namensgleichen Attribute und eliminiert die Duplikatspalten gemäß echter-Semantik). - Outer Join: Erhält nicht-matchende Tupel einer oder beider Seiten, aufgefüllt mit
NULL-Werten. Unterteilt inLEFT OUTER JOIN,RIGHT OUTER JOINundFULL OUTER JOIN.