MySQL INNER JOIN-Klausel
Die Klausel `INNER JOIN` in MySQL wird verwendet, um Zeilen aus zwei oder mehr Tabellen abzurufen, die auf einer gemeinsamen Spalte in beiden Tabellen basieren. Sie gibt nur die Zeilen zurück, deren Werte in beiden Tabellen übereinstimmen.
Verwendung
Die Klausel `INNER JOIN` wird verwendet, wenn du Daten aus mehreren Tabellen auswählen musst, bei denen es eine Übereinstimmung in den angegebenen Spalten gibt. Sie wird normalerweise in `SELECT`-Anweisungen verwendet, um Zeilen aus verschiedenen Tabellen zu kombinieren.
sql
SELECT columns
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
In dieser Syntax kombiniert `INNER JOIN` Zeilen aus `Tabelle1` und `Tabelle2`, bei denen die Werte von `Spaltenname` übereinstimmen. Wenn es in beiden Tabellen keine übereinstimmenden Zeilen gibt, werden keine Zeilen zurückgegeben.
Beispiele
1. Basic Inner Join
sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
In diesem Beispiel werden die Namen der Mitarbeiter zusammen mit den jeweiligen Abteilungsnamen abgerufen, indem die Tabellen "Mitarbeiter" und "Abteilungen" anhand der übereinstimmenden "Abteilungs-ID" und "ID" verbunden werden.
2. Inner Join mit zusätzlichen Bedingungen
sql
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id
WHERE orders.order_date > '2023-01-01';
Diese Abfrage ruft Bestell-IDs und Kundennamen für Bestellungen ab, die nach dem 1. Januar 2023 aufgegeben wurden, indem sie eine innere Verknüpfung zwischen den Tabellen "Bestellungen" und "Kunden" herstellt.
3. Inner Join mit mehreren Tabellen
sql
SELECT students.name, courses.course_name, grades.grade
FROM students
INNER JOIN grades ON students.id = grades.student_id
INNER JOIN courses ON grades.course_id = courses.id;
In diesem Beispiel werden drei Tabellen miteinander verbunden: "Schüler", "Noten" und "Kurse", um den Namen jedes Schülers, die Kurse, in denen er eingeschrieben ist, und seine Noten anzuzeigen.
Tipps und bewährte Praktiken
- Verwende explizite Spaltenreferenzen. Verwende bei Spaltennamen immer den Tabellennamen oder einen Alias, um Mehrdeutigkeiten zu vermeiden.
- Stelle indizierte Join-Spalten sicher. Indiziere Join-Spalten, um die Abfrageleistung zu verbessern.
- Frühzeitig filtern. Wende `WHERE`-Klauseln frühzeitig an, um Daten vor dem Zusammenfügen zu minimieren.
- Verwende Tabellen-Aliase. Verwende Tabellen-Aliase, um Abfragen zu vereinfachen und die Lesbarkeit zu verbessern.
- Ergebnisse begrenzen. Wende `LIMIT` an, um nur die benötigten Daten abzurufen und so die Datenbankbelastung zu verringern.
Hinweis
Der `INNER JOIN` ist der Standard-Join-Typ, wenn bei der Verwendung des Schlüsselworts `JOIN` kein bestimmter Typ angegeben wird.