Typen von SQL JOINs erklärt mit Beispielen

Relationale Datenbanken wie SQL Server speichern Daten in mehreren Tabellen, die über gemeinsame Schlüsselwerte miteinander verbunden sind. Daher ist es häufig erforderlich, Datensätze aus zwei oder mehr verwandten Tabellen anhand bestimmter Bedingungen abzurufen. Zu diesem Zweck verwendet SQL Server die JOIN-Klausel.

Ein JOIN ist eine SQL-Klausel, mit der Daten aus mehreren Tabellen abgefragt und kombiniert werden können, basierend auf den logischen Beziehungen zwischen ihnen. Vereinfacht gesagt, zeigt ein JOIN SQL Server, wie Daten aus einer Tabelle verwendet werden, um passende Zeilen in einer anderen Tabelle zu finden.

Meistern Sie JOINs mit dbForge SQL Complete

Wenn Sie als Datenbankbenutzer Fortschritte machen, müssen Sie ständig Daten aus mehr als einer Tabelle mit SQL Server JOINs abrufen und kombinieren. An diesem Punkt hilft dbForge SQL Complete weiter. Die Codevervollständigung funktioniert hervorragend, auch bei komplexen JOIN-Anweisungen.

dbForge SQL Complete schlägt eine vollständige JOIN-Klausel basierend auf Fremdschlüsseln oder Bedingungen basierend auf Spaltennamen vor. Diese Vorschläge sind nach den Schlüsselwörtern JOIN und ON verfügbar.

Darüber hinaus kann dbForge SQL Complete eine vollständige SQL JOIN-Anweisung anregen, wenn Sie Tabellen basierend auf Fremdschlüsseln kombinieren. Außerdem können Sie eine JOIN-Anweisung aus der Vorschlagsliste manuell für einen bestimmten JOIN-Vorgang auswählen.

Lassen Sie uns die verschiedenen JOIN-Typen ansehen, die mit dbForge SQL Complete erstellt wurden.

Grundlegende SQL JOIN-Typen

SQL Server unterstützt mehrere JOIN-Typen, darunter INNER JOIN, SELF JOIN, CROSS JOIN und OUTER JOIN.

OUTER JOINs können weiter in LEFT OUTER JOINs, RIGHT OUTER JOINs und FULL OUTER JOINs unterteilt werden.

Jeder JOIN-Typ definiert auf welche Weise zwei Tabellen in einer Abfrage verbunden sind.

  • SQL INNER JOIN kombiniert alle Zeilen, die übereinstimmende Werte in zwei oder mehr Tabellen haben.
  • SQL LEFT OUTER JOIN kombiniert alle Zeilen aus der linken Tabelle und nur die übereinstimmenden Zeilen aus der rechten Tabelle.
  • SQL RIGHT OUTER JOIN kombiniert alle Datensätze aus der rechten Tabelle und nur die übereinstimmenden Zeilen aus der linken Tabelle.
  • SQL SELF JOIN verbindet die Tabelle mit sich selbst, um Zeilen innerhalb derselben Tabelle zu vergleichen.
  • SQL CROSS JOIN kombiniert jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle.

INNER JOIN

Ein INNER JOIN gibt nur die Datensätze (oder Zeilen) zurück, die übereinstimmende Werte in beiden Tabellen haben. Es wird verwendet, um Daten abzurufen, die in beiden verwandten Tabellen vorhanden sind.

Inner JOIN work principle in SQL Server

Das einfachste Abfragebeispiel ist:

SELECT
  c.Name
 ,o.Product
FROM Customers c
INNER JOIN Orders o
  ON c.CustomerID = o.CustomerID;
  • Wann sollten Sie es verwenden: Verwenden Sie SQL INNER JOIN nur, wenn Sie Zeilen benötigen, die in beiden Tabellen vorhanden sind.
  • Fallstricke: Die Abfrage schließt nicht übereinstimmende Zeilen aus, was zu fehlenden Daten führen kann. Wenn Sie nicht übereinstimmende Zeilen aus einer Tabelle beibehalten müssen, verwenden Sie stattdessen LEFT JOIN.
  • Beispielszenario: Erstellen Sie eine Liste von Kunden, die Bestellungen aufgegeben haben, einschließlich Kundennamen und Produktnamen.
SELECT 
    p.FirstName + ' ' + p.LastName AS CustomerName,
    pr.Name AS Product
FROM Sales.Customer c
INNER JOIN Person.Person p
    ON c.PersonID = p.BusinessEntityID
INNER JOIN Sales.SalesOrderHeader soh
    ON c.CustomerID = soh.CustomerID
INNER JOIN Sales.SalesOrderDetail sod
    ON soh.SalesOrderID = sod.SalesOrderID
INNER JOIN Production.Product pr
    ON sod.ProductID = pr.ProductID;

Inner JOIN in SQL Server

OUTER JOIN

Ein OUTER JOIN gibt ein Ergebnis zurück, das sowohl übereinstimmende als auch nicht übereinstimmende Zeilen aus der linken und rechten Tabelle enthält. Wenn für die Zeile in der linken Tabelle keine übereinstimmenden Zeilen vorhanden sind, enthalten die Spalten der rechten Tabelle NULLs. Entsprechend enthalten die Spalten der linken Tabelle NULLs, wenn für die Zeile in der rechten Tabelle keine übereinstimmenden Zeilen vorhanden sind.

Outer JOIN work principle in SQL Server

Das einfachste Abfragebeispiel ist:

SELECT c.Name, o.Product 
FROM Customers c 
FULL OUTER JOIN Orders o ON c.CustomerID = o.CustomerID;
  • Wann sollten Sie es verwenden: Verwenden Sie FULL OUTER JOIN, wenn Sie einen vollständigen Überblick über alle Datensätze, abgestimmte oder nicht, benötigen.
  • Fallstricke: Große Ergebnismengen, die mit NULLs gefüllt sind, können die Analyse erschweren und zu niedriger Leistung führen. Um dies zu vermeiden, verwenden Sie die FULL JOIN-Abfrage nur, wenn absolut erforderlich. Verwenden Sie stattdessen LEFT JOIN oder INNER JOIN, um Effizienz zu gewährleisten.
  • Beispielszenario: Rufen Sie die Liste aller Produkte in Bestellungen ab, auch wenn die Kundeninformationen fehlen.
SELECT 
    p.FirstName + ' ' + p.LastName AS CustomerName,
    pr.Name AS Product
FROM Sales.Customer c
FULL OUTER JOIN Person.Person p
    ON c.PersonID = p.BusinessEntityID
FULL OUTER JOIN Sales.SalesOrderHeader soh
    ON c.CustomerID = soh.CustomerID
FULL OUTER JOIN Sales.SalesOrderDetail sod
    ON soh.SalesOrderID = sod.SalesOrderID
FULL OUTER JOIN Production.Product pr
    ON sod.ProductID = pr.ProductID;

Outer JOIN in SQL Server

LEFT OUTER JOIN

Ein LEFT OUTER JOIN gibt alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurück. Wenn es keine Übereinstimmungen in der rechten Tabelle gibt, enthält das Ergebnis dennoch die Zeilen der linken Tabelle mit NULL-Werten für die Spalten aus der rechten Tabelle.

Left JOIN work principle in SQL Server

Das einfachste Abfragebeispiel ist:

SELECT c.Name, o.Product 
FROM Customers c 
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;
  • Wann sollten Sie es verwenden: Verwenden Sie SQL LEFT OUTER JOIN, wenn Sie alle Zeilen aus der linken Tabelle einbeziehen möchten, auch ohne Übereinstimmungen.
  • Fallstricke: Diese Abfrage kann NULL-Werte für fehlende Übereinstimmungen produzieren. Berichte oder Berechnungen können unterbrochen werden, wenn NULLs nicht verwaltet werden. Um dies zu vermeiden, verwenden Sie COALESCE() oder ISNULL(), um NULLs durch Standardwerte zu ersetzen, z. B. COALESCE(o.Product, 'No Orders').
  • Beispielszenario: Rufen Sie die Liste aller Kunden ab, auch wenn sie keine Bestellungen aufgegeben haben (in diesem Fall enthält die Spalte Produkt für den Kunden NULL).
SELECT 
    p.FirstName + ' ' + p.LastName AS CustomerName,
    pr.Name AS Product
FROM Sales.Customer c
LEFT JOIN Person.Person p
    ON c.PersonID = p.BusinessEntityID
LEFT JOIN Sales.SalesOrderHeader soh
    ON c.CustomerID = soh.CustomerID
LEFT JOIN Sales.SalesOrderDetail sod
    ON soh.SalesOrderID = sod.SalesOrderID
LEFT JOIN Production.Product pr
    ON sod.ProductID = pr.ProductID;

Left outer JOIN in SQL Server

RIGHT OUTER JOIN

Ein RIGHT OUTER JOIN funktioniert nach dem gleichen Prinzip wie LEFT OUTER JOIN, aber in umgekehrter Reihenfolge. Es gibt alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle zurück. Wenn eine Zeile in der rechten Tabelle keine entsprechende Übereinstimmung in der linken Tabelle hat, enthält das Ergebnis dennoch diese Zeile, jedoch mit NULL-Werten.

Right OUTER JOIN work principle in SQL Server

Das einfachste Abfragebeispiel ist:

SELECT c.Name, o.Product 
FROM Customers c 
RIGHT JOIN Orders o ON c.CustomerID = o.CustomerID;
  • Wann sollten Sie es verwenden: SQL RIGHT OUTER JOINs sind in Szenarien hilfreich, in denen Sie alle Zeilen aus der rechten Tabelle einbeziehen möchten, auch wenn es keine Übereinstimmung gibt.
  • Fallstricke: Diese Abfrage ist weniger intuitiv als LEFT JOIN. Entwickler könnten die beiden verwechseln. Es ist ratsam, Ihr Team auf LEFT JOIN zu standardisieren und Tabellen bei Bedarf neu zu ordnen – das macht Abfragen leichter lesbar.
  • Beispielszenario: Geben Sie die Liste aller Produkte zurück, die in Bestellungen vorkommen. Wenn die Personenininformationen fehlen, ist Kundenname NULL.
SELECT 
    p.FirstName + ' ' + p.LastName AS CustomerName,
    pr.Name AS Product
FROM Person.Person p
RIGHT JOIN Sales.Customer c
    ON p.BusinessEntityID = c.PersonID
RIGHT JOIN Sales.SalesOrderHeader soh
    ON c.CustomerID = soh.CustomerID
RIGHT JOIN Sales.SalesOrderDetail sod
    ON soh.SalesOrderID = sod.SalesOrderID
RIGHT JOIN Production.Product pr
    ON sod.ProductID = pr.ProductID;

Right outer JOIN in SQL Server

SELF JOIN

Ein SELF JOIN ermöglicht die Verknüpfung einer Tabelle mit sich selbst. Bei diesem Typ von JOIN wird jede Zeile mit anderen Zeilen in derselben Tabelle kombiniert, als ob die Tabelle dupliziert wäre. Es wird jedoch keine physische Kopie der Tabelle erstellt, da SQL Tabellenaliase verwendet, um unterschiedliche Verweise auf dieselbe Tabelle zu erstellen.

Self JOIN work principle in SQL Server

Das einfachste Abfragebeispiel ist:

SELECT e.Name AS Employee, m.Name AS Manager 
FROM Employees e 
LEFT JOIN Employees m ON e.ManagerID = m.EmpID;
  • Wann sollten Sie es verwenden: Verwenden Sie SQL SELF JOIN, wenn Sie Zeilen in derselben Tabelle vergleichen oder verknüpfen möchten.
  • Fallstricke: Bei diesem JOIN-Typ ist es leicht, die Übersicht über Aliase zu verlieren (e vs m), und NULL-Zeilen können die Berichterstellung komplizieren. Um dies zu vermeiden, verwenden Sie immer aussagekräftige Aliase (Employee, Manager) und behandeln Sie NULLs explizit.
  • Beispielszenario: Ordnen Sie jedem Mitarbeiter den Manager zu. Wenn der Mitarbeiter keinen Manager hat (gehört zum Top-Management), enthält die Spalte NULLs.
SELECT 
    epp.FirstName + ' ' + epp.LastName AS Employee,
    mpp.FirstName + ' ' + mpp.LastName AS Manager
FROM HumanResources.Employee e
LEFT JOIN HumanResources.Employee m
    ON e.OrganizationNode.GetAncestor(1) = m.OrganizationNode
LEFT JOIN Person.Person epp
    ON e.BusinessEntityID = epp.BusinessEntityID
LEFT JOIN Person.Person mpp
    ON m.BusinessEntityID = mpp.BusinessEntityID;

Self JOIN in SQL Server

CROSS JOIN

Ein CROSS JOIN in SQL, auch als kartesisches Produkt bekannt, kombiniert jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle. Das Ergebnis ist eine Menge aller möglichen Kombinationen zwischen den beiden Tabellen. Im Gegensatz zu anderen Typen erfordert ein CROSS JOIN keine Join-Bedingung.

Cross JOIN work principle in SQL Server

Das einfachste Abfragebeispiel ist:

SELECT c.Color, s.Size 
FROM Colors c 
CROSS JOIN Sizes s;
  • Wann sollten Sie es verwenden: Verwenden Sie SQL CROSS JOIN, wenn Sie Kombinationen aller Werte zwischen zwei Tabellen generieren möchten.
  • Fallstricke: Die Ergebnisgröße wächst schnell (Zeilen = table1 × table2), was Abfragen zum Absturz bringen kann, wenn Tabellen groß sind. Verwenden Sie ihn daher nur für kleine Nachschlagetabellen oder mit Filtern (WHERE-Klausel), um die Ausgabegröße zu kontrollieren.
  • Beispielszenario: Generieren Sie alle möglichen Kombinationen von Farbe und Größe ohne zusätzliche JOIN-Bedingungen.
SELECT 
    c.Color,
    s.Size
FROM 
    (SELECT DISTINCT Color 
     FROM Production.Product 
     WHERE Color IS NOT NULL) AS c
CROSS JOIN 
    (SELECT DISTINCT Size 
     FROM Production.Product 
     WHERE Size IS NOT NULL) AS s;

Cross JOIN in SQL Server

Zusammenfassung von SQL JOINs

Typ Syntax Wann sollten Sie es verwenden Gibt zurück Beispiel
INNER JOIN SELECT *
FROM A
INNER JOIN B
ON A.id = B.id;
Wenn Sie nur Zeilen benötigen, die in beiden Tabellen vorhanden sind Zeilen mit übereinstimmenden Werten in beiden Tabellen Finden Sie Kunden, die Bestellungen aufgegeben haben
LEFT JOIN SELECT *
FROM A
LEFT JOIN B
ON A.id = B.id;
Wenn Sie alle Zeilen aus der linken Tabelle möchten, auch ohne Übereinstimmungen Alle Zeilen aus der linken plus Übereinstimmungen aus der rechten; nicht übereinstimmende rechte Zeilen = NULL Listen Sie alle Mitarbeiter und ihre Abteilungen auf, auch wenn einige Mitarbeiter nicht zugewiesen sind
RIGHT JOIN SELECT *
FROM A
RIGHT JOIN B
ON A.id = B.id;
Wenn Sie alle Zeilen aus der rechten Tabelle möchten, auch ohne Übereinstimmungen Alle Zeilen aus der rechten plus Übereinstimmungen aus der linken; nicht übereinstimmende linke Zeilen = NULL Listen Sie alle Abteilungen und ihre Mitarbeiter auf, auch wenn einige Abteilungen keine Mitarbeiter haben
FULL OUTER JOIN SELECT *
FROM A
FULL OUTER JOIN B
ON A.id = B.id;
Wenn Sie einen vollständigen Satz aus beiden Tabellen benötigen Alle Zeilen aus beiden Tabellen; nicht übereinstimmende Zeilen mit NULLs gefüllt Kombinieren Sie Kunden- und Lieferantenlisten und zeigen Sie alle Kontakte
CROSS JOIN SELECT *
FROM A
CROSS JOIN B;
Wenn Sie jede Kombination von zwei Tabellen benötigen (kartesisches Produkt) Alle möglichen Zeilenkombinationen Generieren Sie alle möglichen Produkt- und Kategorienkombinationen
SELF JOIN SELECT a.*, b.* FROM Employees a JOIN Employees b ON a.ManagerID = b.EmpID; Wenn Sie Zeilen innerhalb derselben Tabelle vergleichen (Hierarchien, Beziehungen) Abgestimmte Zeilen aus derselben Tabelle Finden Sie Mitarbeiter, die dem gleichen Manager unterstellt sind

Fazit

SQL JOINs sind wesentliche Tools zum Abrufen und Kombinieren von Daten aus mehreren Tabellen in einer Datenbank. Die Beherrschung ist eine grundlegende Fertigkeit für jeden Datenbankfachmann. Dieser Artikel bietet einen klaren Überblick über die grundlegenden Typen von SQL JOINs, ihre Eigenschaften und praktische Anwendungsfälle, die Ihnen helfen, diese Kernkonzepte schnell und leicht zu verstehen.

Darüber hinaus ist dbForge SQL Complete ein leistungsstarker Assistent für die Arbeit mit JOINs. Dieses robuste Add-In für SSMS hilft Ihnen, SQL-Abfragen effizienter zu schreiben. Mit erweiterten Codevorschlägen und KI-gestützter Abfragegenerierung basierend auf einfachsprachigen Eingaben vereinfacht es auch die komplexesten JOIN-Operationen. Sie können dbForge SQL Complete sofort testen, indem Sie das vollständig funktionsfähige Version herunterladen und mit Ihrer eigenen Arbeitslast testen.

Häufig gestellte Fragen

Was versteht man unter JOINs in SQL?

Joining in SQL bedeutet, Daten aus zwei oder mehr Tabellen basierend auf einem gemeinsamen Feld abzurufen. Mit anderen Worten: JOINs kombinieren Daten aus mehreren Tabellen in einer Ergebnistabelle basierend auf einer verwandten Spalte zwischen diesen Tabellen.

Warum verwenden wir JOINs in SQL?

Der Zweck von JOINs in SQL besteht darin, auf Daten aus mehreren Tabellen basierend auf logischen Beziehungen zwischen ihnen zuzugreifen. JOINs werden verwendet, um Daten aus Datenbanktabellen abzurufen und den Ergebnisdatensatz als separate Tabelle darzustellen.

Wie viele Typen von JOINs gibt es in SQL?

Es gibt vier Haupttypen von JOINs in SQL: INNER JOIN, OUTER JOIN, CROSS JOIN und SELF JOIN. OUTER JOINs können weiter in drei Subtypen unterteilt werden: LEFT OUTER JOIN, RIGHT OUTER JOIN und FULL OUTER JOIN.

Welche häufigen Fehler sollten Sie bei SQL JOINs vermeiden?

1. Vergessenheit der ON-Klausel

Wenn Sie zwei Tabellen ohne ON-Bedingung verknüpfen, wird jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle gepaart. Betrachten Sie die folgenden Customers und Orders Eingabetabellen.

CustomerID Name
1 Alice
2 Bob
OrderID CustomerID Product
101 1 Laptop
102 2 Phone

Falsche Abfrage:

SELECT *
FROM Customers, Orders;

Ausgabe (kartesisches Produkt):

CustomerID Name OrderID CustomerID Product
1 Alice 101 1 Laptop
1 Alice 102 2 Phone
2 Bob 101 1 Laptop
2 Bob 102 2 Phone

Problem: Sie erhalten 4 Zeilen statt 2, mit sinnlosen Kombinationen.

Korrekte Abfrage:

SELECT c.Name, o.Product
FROM Customers c
JOIN Orders o ON c.CustomerID = o.CustomerID;

2. Falsche JOIN-Bedingung

Wenn Sie eine JOIN-Abfrage auf nicht verwandten Spalten ausführen, verlieren Sie entweder Übereinstimmungen oder erstellen falsche.

Falsche Abfrage:

SELECT *
FROM Customers c
JOIN Orders o ON c.CustomerID = o.OrderID;

Warum das falsch ist:

  • CustomerID-Werte sind 1, 2.
  • OrderID-Werte sind 101, 102.
  • Da sich diese Zahlen nicht überschneiden, stimmen keine Zeilen überein, und Sie erhalten ein leeres Ergebnis.

Korrekte Abfrage:

SELECT c.Name, o.Product
FROM Customers c
JOIN Orders o ON c.CustomerID = o.CustomerID;

3. Keine Aliase verwenden

Wenn beide Tabellen eine Spalte mit demselben Namen haben, weiß die Datenbank nicht, welche Sie meinen, wenn Sie sie nicht mit einem Präfix versehen.

Falsche Abfrage:

SELECT CustomerID, Name, Product
FROM Customers
JOIN Orders ON CustomerID = CustomerID;

Dies schlägt mit "mehrdeutiger Spaltenname" fehl, da CustomerID in beiden Tabellen vorhanden ist.

Korrekte Abfrage (mit Aliasen):

SELECT c.CustomerID, c.Name, o.Product
FROM Customers c
JOIN Orders o ON c.CustomerID = o.CustomerID;

4. Verknüpfung in nicht indizierten Spalten

Manchmal funktioniert Ihre JOIN-Abfrage, läuft aber bei großen Datensätzen sehr langsam.

Beispiel:

SELECT c.Name, o.Product
FROM Customers c
JOIN Orders o ON c.CustomerID = o.CustomerID;

Bei großen Tabellen scannt die Datenbank die gesamte Tabelle Orders für jede CustomerID, was sehr langsam ist.

Um dies zu beheben, fügen Sie einen Index hinzu:

CREATE INDEX idx_orders_customerid 
ON Orders(CustomerID);
Was sind die 3 beliebtesten Typen von JOINs in SQL mit Beispielen erläutert?

INNER JOIN

Angenommen, Sie haben zwei Tabellen: Kunden (mit den Spalten CustomerID, Name und CountryID) und Bestellungen (mit den Spalten OrderID, CustomerID und OrderDate). Mit INNER JOIN können Sie eine Ergebnistabelle mit den Spalten CustomerID, Name, OrderID und OrderDate erstellen. Auf diese einfache Weise können Sie sehen, wer wann eine Bestellung aufgegeben hat. Die Tabellen werden basierend auf der gemeinsamen Spalte CustomerID abgestimmt, und die nicht übereinstimmende Zeile kommt nicht in den Ergebnisdatensatz.

LEFT OUTER JOIN

Angenommen, Sie haben die Tabellen Produkte und Bestellungen, die eine gemeinsame Spalte ProductId haben. Mit Hilfe von LEFT OUTER JOIN können Sie die beiden Tabellen in einer Ergebnistabelle kombinieren, die alle Zeilen aus der Tabelle Produkte enthält. Falls keine Datensätze aus der Tabelle Bestellungen übereinstimmen, werden NULL-Werte in der Spalte OrderID angezeigt. Auf diese einfache Weise können Sie sehen, welche Produkte noch nicht bestellt wurden.

RIGHT OUTER JOIN

Der RIGHT OUTER JOIN funktioniert ähnlich wie LEFT OUTER JOIN, aber in die entgegengesetzte Richtung. Betrachten wir die Tabellen Lieferanten und Bestellungen. Mit RIGHT OUTER JOIN können wir Datensätze für alle Lieferanten abrufen und ihre Einkaufsbestellungen anzeigen. Falls ein Lieferant noch keine Bestellungen aufgegeben hat, werden NULLs in der Spalte PurchaseOrderId angezeigt.

Was ist der Unterschied zwischen UNION und JOIN in SQL Server?

Sowohl JOIN als auch UNION dienen zum Kombinieren von Daten; ihr Unterschied besteht jedoch auf die Weise, wie sie diese Operation ausführen. Für eine vollständige Erklärung, lesen Sie UNION vs. UNION ALL in SQL Server.

Wie viele Tabellen können in SQL Server verknüpft werden?

SQL Server unterstützt bis zu 256 Tabellen in einer einzelnen Abfrage mit JOINs. In der Praxis sind Abfragen mit mehr als 5–7 JOINs jedoch normalerweise komplex und schwerer zu verwalten. Erwägen Sie, diese in kleinere Abfragen zu unterteilen oder Common Table Expressions (CTEs) für Lesbarkeit und Leistung zu verwenden.

Was ist der Unterschied zwischen LEFT und RIGHT JOIN?

Ein LEFT JOIN behält alle Zeilen aus der linken Tabelle und fügt übereinstimmende Zeilen aus der rechten Tabelle hinzu, wobei nicht übereinstimmende Zeilen mit NULL gefüllt werden.

Ein RIGHT JOIN funktioniert umgekehrt: Er behält alle Zeilen aus der rechten Tabelle bei und bringt die Übereinstimmungen aus der linken ein.

Rule of thumb: LEFT = keep left, RIGHT = keep right.

Können SQL JOINs die Leistung beeinflussen?

Ja. JOINs können die Abfrageleistung erheblich beeinflussen, besonders bei großen Datensätzen.

Probleme treten häufig auf, wenn:

  • Verknüpfung in nicht indizierten Spalten
  • Verwendung von FULL JOIN oder CROSS JOIN bei großen Tabellen
  • Verknüpfung zu vieler Tabellen ohne Filter

Um die Leistung zu verbessern:

  • Erstellen Sie Indizes für Join-Schlüssel
  • Verwenden Sie nur die erforderlichen Spalten in SELECT
  • Filtern Sie Daten früh mit WHERE-Klauseln
dbForge SQL Complete
Genießen Sie selbst die komplexesten JOINs mit SQL Complete.
Herunterladen Kostenlose Version abrufbar