Direkt zum Inhalt
Urkunden
JSON-FunktionenTabellen & Schema ManagementMathe-FunktionenDatenbankenString-FunktionenAuslöserIndizesDatum FunktionenBasic Syntax

PostgreSQL INNER JOIN

Der `INNER JOIN` in PostgreSQL wird verwendet, um Datensätze abzurufen, die übereinstimmende Werte in beiden an der Verknüpfung beteiligten Tabellen haben. Sie ist eine der gängigsten Operationen, um Zeilen aus zwei oder mehr Tabellen auf der Grundlage einer verbundenen Spalte zu kombinieren.

Verwendung

Der `INNER JOIN` wird verwendet, wenn du Zeilen auswählen musst, die entsprechende Werte in einer anderen Tabelle haben. Dieser Vorgang ist wichtig, um Daten aus verschiedenen Tabellen mit einem gemeinsamen Schlüssel zu kombinieren.


SELECT columns
FROM table1
INNER JOIN table2 ON table1.common_column = table2.common_column;

In dieser Syntax wird `INNER JOIN` verwendet, um `Tabelle1` und `Tabelle2` auf der Basis einer gemeinsamen Spalte zu verbinden. Wenn keine Übereinstimmungen zwischen den Tabellen gefunden werden, werden keine Zeilen zurückgegeben.

Beispiele

1. Basic INNER JOIN


SELECT customers.name, orders.order_id
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;

In diesem Beispiel werden die Namen der Kunden und die zugehörigen Bestell-IDs abgefragt, indem die Tabellen "Kunden" und "Bestellungen" über die Spalte "Kunden_id" verknüpft werden.

2. INNER JOIN mit zusätzlichen Bedingungen


SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id
WHERE departments.location = 'New York';

Hier wird der `INNER JOIN` zusammen mit einer `WHERE`-Klausel verwendet, um die Ergebnisse so zu filtern, dass nur die Mitarbeiter in den Abteilungen in New York enthalten sind.

3. INNER JOIN mit mehreren Tabellen


SELECT students.name, courses.course_name, instructors.instructor_name
FROM students
INNER JOIN enrollments ON students.student_id = enrollments.student_id
INNER JOIN courses ON enrollments.course_id = courses.course_id
INNER JOIN instructors ON courses.instructor_id = instructors.instructor_id;

In diesem Beispiel wird gezeigt, wie du mehrere `INNER JOIN`-Klauseln verwendest, um Daten aus vier Tabellen zu ziehen: `Schüler`, `Anmeldungen`, `Kurse` und `Lehrer`.

Tipps und bewährte Praktiken

  • Verwende `INNER JOIN` nur für übereinstimmende Daten. Sie ist ideal, wenn du Zeilen brauchst, die in beiden Tabellen vorhanden sind.
  • Stelle die Indizierung von Join-Spalten sicher. Indiziere die Spalten, die in der "ON"-Bedingung verwendet werden, um die Abfrageleistung zu verbessern.
  • Verwende Aliasnamen für eine bessere Lesbarkeit. Vereinfache komplexe Abfragen, indem du zur besseren Übersichtlichkeit Tabellen-Aliase verwendest. Zum Beispiel:
    
        SELECT c.name, o.order_id
        FROM customers AS c
        INNER JOIN orders AS o ON c.customer_id = o.customer_id;
        
  • Kombiniere mit anderen Klauseln. Verbessere die Filterung und Datenmanipulation durch die Verwendung von `INNER JOIN` mit `WHERE`, `GROUP BY` und `ORDER BY` Klauseln.
  • Prüfe auf Nullen. Denke daran, dass der `INNER JOIN` Zeilen mit Nullen in der Join-Spalte ausschließt, was zu fehlenden Daten führen kann, wenn es nicht richtig behandelt wird. Erwäge die Verwendung von `COALESCE` oder ähnlichen Funktionen, um mögliche Nullwerte in Join-Spalten zu behandeln.