Joins werden in SQL verwendet, um Datensätze aus **mehreren** Tabellen zu kombinieren.
Da in einer normalisierten Datenbank die Daten in verschiedenen Tabellen abgelegt sind,
um Redundanzen zu vermeiden (und die Gefahr für Anomalien und Inkonsistenzen zu verringern),
sind Joins ein wichtiges Werkzeug im SQL Werkzeugkasten, um die Daten wieder zusammenzuführen.
## Arten von Joins
Es gibt verschiedene Arten von Joins:
-[**INNER JOIN**](inner/) - Gibt nur Datensätze zurück, zu denen es in beiden Tabellen eine Übereinstimmung gibt
-[**LEFT OUTER JOIN**](outer/) - Gibt **alle** Zeilen aus der linken Tabelle zurück und passende Zeilen aus der rechten – wenn keine passen, wird mit NULL aufgefüllt.
-[**RIGHT OUTER JOIN**](outer/) - Umgekehrt wie LEFT OUTER JOIN.
-**FULL OUTER JOIN** - Eine Kombination aus LEFT und RIGHT OUTER JOIN. Gibt alle Zeilen aus beiden Tabellen zurück – wo es keine Übereinstimmung gibt, wird NULL ergänzt.
-**CROSS JOIN** - Kombiniert jede Zeile der ersten Tabelle mit jeder Zeile der zweiten (kartesisches Produkt).
In MariaDB gibt es keinen FULL OUTER JOIN, man kann ihn jedoch mit anderen Werkzeugen nachbauen.
Joins werden in SQL verwendet, um Datensätze aus mehreren Tabellen zu kombinieren.
Da in einer normalisierten Datenbank die Daten in verschiedenen Tabellen abgelegt sind,
um Redundanzen zu vermeiden (und die Gefahr für Anomalien und Inkonsistenzen zu verringern),
sind Joins ein wichtiges Werkzeug im SQL Werkzeugkasten, um die Daten wieder zusammenzuführen.
## Arten von Joins
Es gibt verschiedene Arten von Joins:
-**INNER JOIN** - Gibt nur Datensätze zurück, zu denen es in beiden Tabellen eine Übereinstimmung gibt
-**LEFT OUTER JOIN** - Gibt **alle** Zeilen aus der linken Tabelle zurück und passende Zeilen aus der rechten – wenn keine passen, wird mit NULL aufgefüllt.
-**RIGHT OUTER JOIN** - Umgekehrt wie LEFT OUTER JOIN.
-**FULL OUTER JOIN** - Eine Kombination aus LEFT und RIGHT OUTER JOIN. Gibt alle Zeilen aus beiden Tabellen zurück – wo es keine Übereinstimmung gibt, wird NULL ergänzt.
-**CROSS JOIN** - Kombiniert jede Zeile der ersten Tabelle mit jeder Zeile der zweiten (kartesisches Produkt).
In MariaDB gibt es keinen FULL OUTER JOIN, man kann ihn jedoch mit anderen Werkzeugen nachbauen.
## INNER JOIN
# INNER JOIN
{% svg "join/inner_venn" %}
Der INNER JOIN kombiniert Datensätze, bei denen es in beiden Tabellen eine Überstimmung gibt, basierend auf einer Bedingung.
Der INNER JOIN kombiniert Datensätze, bei denen es in beiden Tabellen eine Überstimmung gibt, basierend auf einer Join-Bedingung.
## Syntax von INNER JOIN
@@ -91,6 +68,18 @@ sieht das Ergebnis viel besser aus:
{% svg "join/inner_4" %}
<br>
## Ausgefilterte Zeilen
Die rot markierten Zeilen sind nicht in der Ergebnistabelle vorhanden,
das liegt daran, dass diese Zeilen keinen "Join-Partner" in der jeweils anderen Tabelle gefunden haben.
{% svg "join/left_1" %}
Warum manchmal gerade diese Zeilen so interessant sind und wie man sie per Query ausliest, erfahren Sie auf der [nächsten Seite](../outer/).
## Fazit
Wie wir gesehen haben, ist es ohne viel Aufwand möglich, die ausgelagerten Daten