Arten von SQL JOINS
Erklärt mit Beispielen

JOINS Grundlagen

In relationalen Datenbanken wie SQL Server, Oracle, MySQL und anderen werden Daten in mehreren Tabellen gespeichert, die über einen gemeinsamen Schlüsselwert miteinander verbunden sind. Dementsprechend besteht ständig die Notwendigkeit, Datensätze aus zwei oder mehr Tabellen auf der Grundlage einer Bedingung in eine Ergebnistabelle zu extrahieren. In SQL Server lässt sich dies ganz einfach mit der SQL JOIN-Klausel bewerkstelligen.

JOIN ist eine SQL-Klausel, die verwendet wird, um Daten aus mehreren Tabellen abzufragen und darauf zuzugreifen, basierend auf logischen Beziehungen zwischen diesen Tabellen.

Mit anderen Worten: JOINS geben an, wie SQL Server Daten aus einer Tabelle verwenden soll, um die Zeilen aus einer anderen Tabelle auszuwählen.

Verschiedene Arten von JOINS in SQL Server

JOINS genießen mit SQL Complete

Automatische Erstellung von JOIN-Klausel

Die Beherrschung von SQL Server JOINS ist von entscheidender Bedeutung. Wenn Sie sich vom Datenbankanfänger zum fortgeschrittenen Benutzer entwickeln, werden Sie immer wieder Daten aus mehr als einer Tabelle abrufen und kombinieren müssen. An diesem Punkt kommt Ihnen, SQL Complete zu Hilfe. Seine Code-Vervollständigung funktioniert selbst bei komplexen JOIN-Anweisungen gut. Sie brauchen sich nicht mehrere Spaltennamen oder Aliasnamen zu merken, dbForge SQL Complete schlägt Ihnen eine vollständige JOIN-Klausel auf der Grundlage von Fremdschlüsseln oder Bedingungen auf der Grundlage von Spaltennamen vor. Diese Vorschläge sind nach den Schlüsselwörtern JOIN und ON verfügbar.

Darüber hinaus kann SQL Complete eine vollständige SQL JOIN-Anweisung abfragen, wenn Sie Tabellen auf der Grundlage von Fremdschlüsseln kombinieren.
Sie können eine JOIN-Anweisung manuell aus der Abfrageliste auswählen, wenn Sie eine bestimmte
JOIN-Operation benötigen.



Im Rahmen unseres SQL JOIN-Tutorials werfen wir einen Blick auf die verschiedenen Typen von MSSQL JOIN-Anweisungen mit Hilfe des SQL Complete Tool.

Grundlegende SQL JOIN-Typen

SQL Server unterstützt viele verschiedene Arten von Joins, darunter INNER JOIN, SELF JOIN, CROSS JOIN, und OUTER JOIN. Jeder Join-Typ definiert die Art und Weise, wie zwei Tabellen in einer Abfrage miteinander verbunden sind. OUTER JOINS können weiter unterteilt werden in LEFT OUTER JOINS, RIGHT OUTER JOINS, und FULL OUTER JOINS.

  • SQL INNER JOIN erstellt eine Ergebnistabelle, indem Zeilen mit übereinstimmenden Werten in zwei oder mehr Tabellen kombiniert werden.
  • SQL LEFT OUTER JOIN enthält in einer Ergebnistabelle nicht übereinstimmende Zeilen aus der Tabelle, die vor der LEFT OUTER JOIN-Klausel angegeben wurde.
  • SQL RIGHT OUTER JOIN erstellt eine Ergebnistabelle und nimmt in diese alle Datensätze aus der rechten Tabelle und nur passende Zeilen aus der linken Tabelle auf.
  • SQL SELF JOIN verknüpft die Tabelle mit sich selbst und ermöglicht den Vergleich von Zeilen innerhalb derselben Tabelle.
  • SQL CROSS JOIN erstellt eine Ergebnistabelle, die eine gepaarte Kombination aus jeder Zeile der ersten Tabelle und jeder Zeile der zweiten Tabelle enthält.

Hauptarten von SQL Server JOINs

dbForge SQL Complete

Genießen Sie selbst die komplexesten JOINs mit SQL Complete

INNER JOIN

Die INNER JOIN-Anweisung gibt nur die Datensätze oder Zeilen zurück, die übereinstimmende Werte haben, und wird verwendet, um Daten abzurufen, die in beiden Tabellen enthalten sind. Inner SQL JOIN

In unserem Beispiel möchten wir Daten aus den Tabellen Sales.SalesOrderDetail und Production.Product extrahieren, die mit SOD für Sales.SalesOrderDetail und P für Production.Product verlinkt sind. In der JOIN-Anweisung gleichen wir Datensätze in diesen Spalten ab. Beachten Sie, wie Code-Vorschläge in SQL Complete funktionieren.

Arbeiten Sie mit INNER JOINs in SQL Complete

OUTER JOIN

Wenn Sie einen SQL INNER JOIN anwenden, liefert die Ausgabe nur übereinstimmende Zeilen aus den angegebenen Tabellen. Wenn Sie dagegen einen SQL OUTER JOIN verwenden, werden nicht nur die übereinstimmenden Zeilen, sondern auch die nicht übereinstimmenden Zeilen abgerufen. SQL Server OUTER JOIN

Der FULL OUTER JOIN liefert ein Ergebnis, das Zeilen sowohl aus der linken als auch aus der rechten Tabelle enthält. Wenn es für die Zeile in der linken Tabelle keine übereinstimmenden Zeilen gibt, enthalten die Spalten der rechten Tabelle Nullen. Dementsprechend enthält die Spalte der linken Tabelle Nullen, wenn es keine übereinstimmenden Zeilen für die Zeile in der rechten Tabelle gibt.

Arbeiten Sie mit OUTER JOINs in SQL Complete

LEFT OUTER JOIN

Der LEFT OUTER JOIN liefert die Ausgabe der übereinstimmenden Zeilen zwischen beiden Tabellen.Falls keine Datensätze aus der linken Tabelle übereinstimmen, werden die Datensätze mit Nullwerten angezeigt.

LEFT OUTER JOIN in SQL

In unserem Beispiel möchten wir die Tabellen Person.Person und HumanResources.Employee verknüpfen, um eine Liste aller LastNames von Personen abzurufen, aber auch die JobTitle anzuzeigen, wenn die Person ein Mitarbeiter ist.

Falls es in der Ausgabe keine Mitarbeiter gibt, die der BusinessEntityID entsprechen, werden in den entsprechenden Zeilen für NationalIDNumber und JobTitle NULL-Werte aufgeführt.
Erstellen Sie LEFT OUTER JOINs mittels SQL Complete

RIGHT OUTER JOIN

Der RIGHT OUTER JOIN funktioniert nach demselben Prinzip wie der LEFT OUTER JOIN. Der RIGHT OUTER JOIN wählt Daten aus der rechten Tabelle (Tabelle B) aus und gleicht diese Daten mit den Zeilen aus der linken Tabelle (Tabelle A) ab. Der RIGHT JOIN gibt eine Ergebnismenge zurück, die alle Zeilen in der rechten Tabelle enthält, unabhängig davon, ob sie mit Zeilen aus der linken Tabelle übereinstimmen oder nicht. Für den Fall, dass eine Zeile in der rechten Tabelle keine übereinstimmenden Zeilen in der linken Tabelle hat, enthält die Spalte der linken Tabelle in der Ergebnismenge Nullen. RIGHT OUTER JOIN in SQL Server

Erstellen Sie RIGHT OUTER JOINs in SSMS

SELF JOIN

Mit dem SELF JOIN können Sie eine Tabelle mit sich selbst verbinden. Das bedeutet, dass jede Zeile der Tabelle mit sich selbst und mit jeder anderen Zeile der Tabelle kombiniert wird. Der SELF JOIN kann als Verbindung von zwei Kopien derselben Tabelle betrachtet werden. Die Tabelle wird nicht wirklich kopiert, aber SQL führt den Befehl so aus, als ob sie es wäre. Dies wird durch die Verwendung von Tabellennamen-Aliasen erreicht, um jeder Instanz der Tabelle einen eigenen Namen zu geben. Dies ist besonders nützlich, um hierarchische Daten zu extrahieren oder Zeilen innerhalb derselben Tabelle zu vergleichen. Was ist SELF JOIN in SQL

In unserem Beispiel möchten wir eine Liste aller Gebiete
und der darin arbeitenden Verkäufer aus der Tabelle Sales.SalesPerson abrufen.

Erstellen Sie SELF JOINs mittels SQL Complete

CROSS JOIN

Der Befehl CROSS JOIN in SQL, auch bekannt als kartesische Verknüpfung, gibt alle Kombinationen von Zeilen aus jeder Tabelle zurück. Stellen Sie sich vor, Sie müssen alle Kombinationen von Größe und Farbe finden. In diesem Fall ist ein CROSS JOIN von Vorteil. Beachten Sie, dass diese Verbindung keine Bedingung benötigt, um zwei Tabellen zu verbinden. Tatsächlich verbindet CROSS JOIN jede Zeile aus der ersten Tabelle mit jeder Zeile aus der zweiten Tabelle und sein Ergebnis umfasst alle Kombinationen von Datensätzen in zwei Tabellen. CROSS JOIN in SQL Server
Erstellen Sie CROSS JOINs in SQL Complete für SSMS und VS

dbForge SQL Complete

Genießen Sie selbst die komplexesten JOINs mit SQL Complete

Sehen Sie, wie man
JOINs in den SELECT-Anweisungen verwendet

Mit SQL Joins können Sie Daten aus mehr als einer Tabelle abrufen und kombinieren. In diesem Video zeigen wir Ihnen verschiedene Typen von MS SQL JOIN-Anweisungen und Beispiele für die Verwendung von JOINs in SELECT-Anweisungen. Außerdem sehen Sie, wie dbForge SQL Complete Sie bei der Erstellung von JOINS-Anweisungen unterstützt, indem es Ihnen vorgefertigte Phrasen und Join-Bedingungen vorgibt.
Mit SQL Complete erhalten Sie
  • Vorschläge für vollständige Join-Bedingungen nach dem Schlüsselwort JOIN
  • Vorschläge für Verbindungsbedingungen nach dem Schlüsselwort ON
  • Kontextbasierte Abfragen für alle möglichen Kombinationen,
    um Tabellen zu verbinden
  • Signifikante Zeitersparnisse
  • Eine Gelegenheit, die Qualität Ihres Codes zu verbessern
  • Keine Notwendigkeit, sich Tabellen- und Spaltennamen zu merken

FAQ

SQL Complete
Erweiterte Lösung für die Entwicklung, das Management
und die Administration von SQL-Datenbanken