Zurück zur Artikelliste Artikel
27 Leseminuten

Die 10 wichtigsten SQL JOIN-Interview-Fragen und wie man sie beantwortet

Haben Sie sich jemals gefragt, welche SQL JOIN-Fragen Ihnen in einem Vorstellungsgespräch gestellt werden könnten? Fühlen Sie sich auf die Beantwortung dieser Fragen vorbereitet? Dieser Artikel behandelt die häufigsten SQL JOIN-Fragen in einem Vorstellungsgespräch und zeigt, wie Sie sie beantworten können.

Wenn Sie sich um eine Stelle als Datenanalytiker oder Softwareentwickler bewerben, werden Sie wahrscheinlich nach Ihren SQL JOIN Kenntnissen gefragt werden. SQL JOIN Klauseln kommen oft in Vorstellungsgesprächen als Thema vor. Es gibt viele Variationen der JOIN Klausel und jede erfüllt eine andere Funktion.

Es gibt viele großartige Ressourcen, um etwas über SQL JOIN Klauseln zu lernen, wie z.B. LearnSQL.de's interaktiver SQL-JOINs Kurs. In diesem Artikel wird das Thema jedoch mit Blick auf ein Vorstellungsgespräch behandelt und es werden einige der häufigsten SQL JOIN Fragen behandelt, mit denen Sie in einem Vorstellungsgespräch rechnen müssen.

  1. Was ist ein SQL JOIN-Befehl und wann braucht man ihn?
  2. Wie würden Sie eine Abfrage schreiben, um diese beiden Tabellen zu JOINen?
  3. Welche Arten von JOINs gibt es?
  4. Was ist ein OUTER JOIN?
  5. Was ist der Unterschied zwischen einem SQL INNER JOIN und einem SQL LEFT JOIN?
  6. Was ist der Unterschied zwischen einem LEFT JOIN und einem FULL JOIN?
  7. Schreiben Sie eine Abfrage, die diese beiden Tabellen so JOINt, dass alle Zeilen aus Tabelle 1 im Ergebnis enthalten sind.
  8. Wie kann man mehr als zwei Tabellen verbinden?
  9. Wie verbinden Sie eine Tabelle mit sich selbst?
  10. Muss die JOIN-Bedingung gleich sein?

1. Was ist ein SQL JOIN-Befehl und wann braucht man ihn?

Der SQL-Befehl JOIN wird verwendet, um Daten aus zwei Tabellen in SQL zu kombinieren. Die JOIN Klausel wird häufig verwendet, wenn Tabellen mindestens eine Spalte mit Daten gemeinsam haben.

Normalerweise ist die JOIN Bedingung eine Gleichheit zwischen den Spalten der verschiedenen Tabellen, aber andere JOIN Bedingungen sind auch möglich. Sie können mehr als zwei Tabellen verbinden, indem Sie aufeinanderfolgende JOIN Klauseln verwenden.

Es gibt verschiedene Arten von JOINs: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN und andere. Die Funktion des Befehls JOIN wird durch dieses Bild veranschaulicht:

Innerer JOIN

2. Wie würden Sie eine Abfrage schreiben, um diese beiden Tabellen zu JOINen?

Während des Vorstellungsgesprächs werden Sie möglicherweise aufgefordert, Ihr Wissen auf ein praktisches Szenario anzuwenden, indem Sie einen JOIN Befehl schreiben. Schauen wir uns ein Beispiel an, damit Sie diese Aufgabe mit Leichtigkeit lösen können.

Wir haben zwei Tabellen:

  • employees - Diese Tabelle enthält die ID, den Namen und die Abteilungs-ID der einzelnen Mitarbeiter.

idemployee_namedepartment_id
1Homer Simpson4
2Ned Flanders1
3Barney Gumble5
4Clancy Wiggum3
5Moe SyzslakNULL
  • departments - Diese Tabelle enthält die ID und den Namen der einzelnen Abteilungen.

department_iddepartment_name
1Sales
2Engineering
3Human Resources
4Customer Service
5Research And Development

Wenn Sie aufgefordert werden, JOIN Tabellen zu erstellen, versuchen Sie, eine Spalte zu finden, die in jeder der Tabellen vorhanden ist. In diesem Beispiel ist es die Spalte department_id.

SELECT * 
FROM employees 
JOIN departments 
ON employees.department_id = departments.department_id;

Wenn Sie diesen Code ausführen, erhalten Sie das folgende Ergebnis:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research And Development
4Clancy Wiggum33Human Resources

Die ON-Bedingung gibt an, wie die beiden Tabellen (diejenige nach FROM und diejenige nach JOIN) kombiniert werden sollen. Im obigen Beispiel sehen Sie, dass beide Tabellen die Spalte department_id enthalten. Unsere SQL-Abfrage wird Zeilen zurückgeben, in denen employees.department_id gleich departments.department_id ist.

Manchmal sind relationale Felder etwas weniger offensichtlich. Sie könnten z.B. eine Tabelle mit dem Namen "employees" haben, die ein Feld mit dem Namen id enthält, das mit employee_id in einer beliebigen anderen Tabelle verknüpft werden könnte.

Sie können auch genau angeben, welche Spalten Sie aus jeder der in Ihrer JOIN Klausel enthaltenen Tabellen zurückgeben möchten. Wenn Sie einen Spaltennamen einschließen, der in beiden Tabellen vorhanden ist, müssen Sie die genaue Tabelle angeben, aus der Sie die Spalte abrufen wollen.

Wir können nicht department_id schreiben, da dies einen Mehrdeutigkeitsfehler in SQL verursachen würde. Sie müssen employees.department_id oder departments.department_id schreiben. Wir könnten zum Beispiel schreiben:

SELECT 
employees.department_id, employee_name, department_name
FROM employees 
JOIN departments 
ON employees.department_id = departments.department_id;

Beachten Sie unsere Anweisung SELECT. Wir haben den genauen Tabellennamen für die Spalte department_id angegeben, weil diese Spalte in beiden Tabellen existiert, die unsere JOIN Klausel bilden. Für die Spalten employee_name oder department_name müssen wir dies nicht tun, da diese eindeutig sind. Die Ausführung dieser SQL-Abfrage führt zu der folgenden Ergebnismenge:

idemployee_namedepartment_name
1Ned FlandersSales
3Clancy WiggumHuman Resources
4Homer SimpsonCustomer Service
5Barney GumbleResearch And Development

Wenn wir unsere SQL JOIN Klauseln schreiben, können wir auch SQL-Aliase verwenden. Spaltennamen können recht technisch und nicht sehr verständlich sein. Dies kann dazu führen, dass die Ausgabe der Abfrage schwer zu verstehen ist. Im Folgenden finden Sie einige Regeln, die Sie bei der Implementierung eines SQL-Alias beachten sollten:

  • Um einer Spalte einen beschreibenden Namen zu geben, können Sie einen Spaltenalias verwenden.
  • Um einer Spalte einen Alias zuzuweisen, verwenden Sie das Schlüsselwort AS, gefolgt von dem Alias.
  • Wenn der Alias Leerzeichen enthält, müssen Sie ihn in einfachen Anführungszeichen setzen.

Ein SQL-Alias kann sowohl auf Tabellennamen als auch auf Spaltennamen angewendet werden. Wenn wir unsere vorherige Abfrage so umschreiben, dass sie einen Alias für jeden Spaltennamen enthält, könnte sie etwa so aussehen:

SELECT 
employees.department_id AS ID, 
employee_name AS ‘Employee Name’, 
department_name AS Department
FROM employees 
JOIN departments 
ON employees.department_id = departments.department_id;

Beachten Sie, dass wir für unsere Spalte ‘Employee Name’ einfache Anführungszeichen verwenden mussten, weil dieser neue Name Leerzeichen enthält.

Wenn wir unseren obigen Code neu schreiben, diesmal mit einem Alias für jeden Tabellennamen, erhalten wir folgendes:

SELECT * 
FROM employees AS emp 
JOIN departments AS dep 
ON emp.department_id = dep.department_id;

Das hier verwendete Schlüsselwort AS ist außerdem optional. Sie können es in der Anweisung weglassen. Wenn Sie diese kleine Änderung vornehmen, sieht unser Code wie folgt aus:

SELECT * 
FROM employees emp 
JOIN departments dep 
ON emp.department_id = dep.department_id;

Dies sollten alle Informationen sein, die Sie benötigen, um ein JOIN auf zwei Tabellen zu erstellen und alle Folgefragen zu beantworten, die Ihnen bezüglich der grundlegenden JOIN Syntax gestellt werden könnten.

3. Welche Arten von JOINs gibt es?

Wie in der Einleitung zu diesem Artikel erwähnt, gibt es viele Varianten der SQL JOIN Klausel. Eine Möglichkeit, Ihre SQL JOIN Kenntnisse unter Beweis zu stellen, ist der Nachweis, dass Sie die einzelnen Befehle beherrschen. Hier sind einige der häufigsten Arten von JOIN-Klauseln, denen Sie begegnen werden:

SQL INNER JOIN

Die INNER JOIN Klausel ist die Standard JOIN Klausel in SQL. Wenn Sie sich unser vorheriges Beispiel (SELECT * FROM employees JOIN departments) ansehen, war dies eigentlich ein INNER JOIN.

Ein INNER JOIN wird verwendet, um Zeilen aus beiden Tabellen zurückzugeben, die die gegebene Bedingung erfüllen. Der INNER JOIN gleicht Zeilen aus der ersten und zweiten Tabelle ab, die die Bedingung ON erfüllen.

Dieses Bild veranschaulicht die Beziehung zwischen den beiden Tabellen, die in unserer INNER JOIN Klausel enthalten sind:

Innerer JOIN

Lassen Sie uns die Syntax und Funktionalität von INNER JOIN anhand eines praktischen Beispiels mit den beiden Tabellen weiter erkunden, employees und departmentswie oben beschrieben.

Der folgende SQL-Code sucht nach Übereinstimmungen zwischen den Tabellen employees und departments auf der Grundlage der Spalte department_id.

SELECT * from employees emp 
INNER JOIN departments dep 
ON emp.department_id = dep.department_id;

Die Ausführung dieses Codes führt zu folgendem Ergebnis:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research And Development
4Clancy Wiggum33Human Resources

Wenn Sie sich unser Ergebnis ansehen, werden Sie feststellen, dass unser Mitarbeiter Moe Szyslak fehlt. In unserer employees Tabelle hat dieser Mitarbeiter keine aktuelle department_id. Daher konnte keine Übereinstimmung gefunden werden, wenn Sie versuchen, die Tabelle departments auf dieser Spalte zu JOINen. Daher wird der Mitarbeiter aus dem Ergebnis ausgeschlossen. Wir werden dieses Problem mit dem nächsten JOIN Typ, LEFT JOIN, beheben.

Wenn Sie weitere Beispiele für INNER JOINs sehen möchten, kann Ihnen ein Artikel mit visuellen, leicht verständlichen Beispielen helfen, dieses komplexe Thema zu begreifen.

SQL LEFT JOIN

Ähnlich wie die INNER JOIN Klausel ermöglicht die LEFT JOIN die Abfrage von Daten aus zwei Tabellen. Aber was ist der entscheidende Unterschied zwischen LEFT JOIN und INNER JOIN? Ein LEFT JOIN gibt alle Zeilen zurück, die in der ersten (linken) Tabelle aufgeführt sind. Übereinstimmende Zeilen aus der rechten Tabelle werden ebenfalls zurückgegeben.

Wenn Sie die LEFT JOIN Klausel verwenden, werden die Konzepte der linken Tabelle und der rechten Tabelle eingeführt.

LEFT JOIN

Im obigen Diagramm ist Tabelle 1 die linke Tabelle und Tabelle 2 die rechte Tabelle.

Die LEFT JOIN Klausel wählt Daten aus, die in der linken Tabelle beginnen. Sie gleicht jede Zeile aus der linken Tabelle mit Zeilen aus der rechten Tabelle ab, basierend auf der Bedingung der JOIN Klausel.

Die SQL-Klausel LEFT JOIN gibt alle Zeilen aus der linken Tabelle zurück, auch wenn in der rechten Tabelle keine Übereinstimmungen gefunden werden können. Das heißt, wenn die ON-Klausel keine Datensätze in der rechten Tabelle findet, gibt der JOIN trotzdem eine Zeile im Ergebnis zurück, allerdings mit NULL in jeder Spalte der rechten Tabelle.

Ein SQL LEFT JOIN gibt alle Werte aus der linken Tabelle sowie die übereinstimmenden Werte aus der rechten Tabelle zurück. Wenn keine Übereinstimmung gefunden werden konnte, gibt LEFT JOIN stattdessen einen NULL-Wert zurück.

Die Syntax für unsere SQL LEFT JOIN Klausel lautet wie folgt:

SELECT * FROM employees emp 
LEFT JOIN departments dep 
ON emp.department_id = dep.department_id;

Wir geben an, dass wir einen LEFT JOIN benötigen. Dies ist für alle JOIN Typen gleich. Geben Sie vor dem Schlüsselwort JOIN an, welche Variante von JOIN Sie verwenden.

Das Schlüsselwort ON funktioniert genauso wie in unserem Beispiel INNER JOIN. Wir suchen nach übereinstimmenden Werten zwischen der Spalte department_id unserer Angestelltentabelle und der Spalte department_id unserer departments Tabelle.

Hier wird unsere employees Tabelle als die linke Tabelle verwendet, da sie die erste Tabelle ist, die wir angeben.

Das Ergebnis der Ausführung dieser SQL-Abfrage wäre die folgende Ergebnismenge:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research And Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL

Beachten Sie, dass unser Angestellter Moe Szyslak in die Ergebnismenge aufgenommen wurde, obwohl es keine übereinstimmende department_id in der departments Tabelle gibt. Dies ist genau der Zweck der LEFT JOIN-Klausel, nämlich alle Daten aus der linken Tabelle einzuschließen, unabhängig davon, ob eine Übereinstimmung gefunden wurde.

SQL RIGHT JOIN

RIGHT JOIN ist ähnlich wie LEFT JOIN, mit der Ausnahme, dass die Aktion, die auf den verbundenen Tabellen ausgeführt wird, umgekehrt ist. Im Wesentlichen wird die umgekehrte Aktion von LEFT JOIN ausgeführt. Das bedeutet, dass RIGHT JOIN alle Werte aus der rechten Tabelle sowie die übereinstimmenden Werte aus der linken Tabelle oder NULL zurückgibt, wenn das Prädikat JOIN nicht zutrifft.

Im folgenden Diagramm ist Tabelle 2 unsere rechte Tabelle und Tabelle 1 unsere linke Tabelle:

RIGHT JOIN

Wir führen den folgenden Code auf unsere employees und departments Tabellen aus:

SELECT * FROM employees emp 
RIGHT JOIN departments dep 
ON emp.department_id = dep.department_id;

Die Syntax ähnelt der von LEFT JOIN. Wir geben an, dass wir einen RIGHT JOIN durchführen wollen und suchen speziell nach Übereinstimmungen zwischen der departments Tabelle und der employees Tabelle.

Hier wird unsere employees Tabelle als die linke Tabelle behandelt, da dies die erste Tabelle ist, die wir angeben. Die departments Tabelle wird die rechte Tabelle sein. Das Ergebnis der Ausführung dieser SQL JOIN-Abfrage ist die folgende Ergebnismenge:

idemployee_namedepartment_iddepartment_iddepartment_name
2Ned Flanders11Sales
NULLNULLNULL2Engineering
4Clancy Wiggum33Human Resources
1Homer Simpson44Customer Service
3Barney Gumble55Research And Development

Der RIGHT JOIN beginnt mit der Auswahl von Daten aus der rechten Tabelle (departments). Er gleicht jede Zeile aus der rechten Tabelle mit jeder Zeile aus der linken Tabelle ab. Wenn beide Zeilen die Bedingung JOIN als wahr auswerten, werden die Spalten zu einer neuen Zeile kombiniert und diese neue Zeile in die Ergebnismenge aufgenommen.

SQL FULL JOIN

Der SQL FULL JOIN kombiniert die Ergebnisse von LEFT und RIGHT OUTER JOINS. Die verbundene Tabelle enthält alle Datensätze aus beiden Tabellen und füllt NULL-Werte für fehlende Übereinstimmungen auf beiden Seiten auf.

Beachten Sie, dass ein FULL JOIN möglicherweise eine sehr große Datenmenge zurückgeben kann. Ein FULL JOIN gibt alle Zeilen aus den verbundenen Tabellen zurück, unabhängig davon, ob sie übereinstimmen oder nicht.

SQL FULL JOIN ist ein Typ von OUTER JOIN (wir werden später in diesem Artikel darauf eingehen), weshalb er auch als FULL OUTER JOIN bezeichnet werden kann.

Hier ist das Konzept eines SQL FULL JOIN klar veranschaulicht:

FULL JOIN

Beachten Sie, dass in unserem Diagramm jede Zeile aus beiden Tabellen zurückgegeben wird.

Schauen wir uns die Syntax der SQL FULL JOIN-Klausel anhand eines Beispielcodes an.

SELECT * FROM employees emp 
FULL JOIN departments dep 
ON emp.department_id = dep.department_id;

Wenn diese SQL-Abfrage gegen unsere employees und departments Tabellen ausgeführt wird, ergibt sich das folgende Ergebnis:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research And Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL
2Ned Flanders11Sales
NULLNULL2Engineering
4Clancy Wiggum33Human Resources
1Homer Simpson44Customer Service
3Barney Gumble55Research And Development

Vergleichen Sie diese Ergebnismenge mit den Ergebnissen unseres LEFT JOIN und RIGHT JOIN. Sie werden sehen, dass diese Daten eine Kombination der Daten sind, die von unseren vorherigen Beispielen zurückgegeben wurden. Dieser spezielle Typ der JOIN-Klausel erzeugt einen riesigen Datensatz. Überlegen Sie genau, bevor Sie die FULL JOIN-Klausel verwenden.

CROSS JOIN

Eine SQL-Klausel CROSS JOIN wird verwendet, wenn Sie alle Möglichkeiten der Kombination zweier Tabellen ermitteln müssen, wobei die Ergebnismenge jede Zeile aus jeder beitragenden Tabelle enthält. Die CROSS JOIN-Klausel gibt das kartesische Produkt der Zeilen aus den verbundenen Tabellen zurück.

Das folgende Diagramm veranschaulicht gut, wie die Zeilen kombiniert werden:

CROSS JOIN

Die Verwendung von CROSS JOIN ergibt eine Ergebnismenge, deren Größe der Anzahl der Zeilen der ersten Tabelle multipliziert mit der Anzahl der Zeilen der zweiten Tabelle entspricht. Diese Art von Ergebnis nennt man das kartesische Produkt zweier Tabellen (Tabelle 1 x Tabelle 2).

Schauen wir uns unsere beiden Tabellen von vorhin an:

  • Die employees Tabelle
idemployee_namedepartment_id
1Homer Simpson4
2Ned Flanders1
3Barney Gumble5
4Clancy Wiggum3
5Moe SyzslakNULL
  • Die departments Tabelle
department_idemployee_name
1Sales
2Engineering
3Human Resources
4Customer Service
5Research And Development

Um einen CROSS JOIN mit diesen Tabellen durchzuführen, würden wir eine SQL-Abfrage wie folgt schreiben:

SELECT * FROM employees 
CROSS JOIN departments;

Beachten Sie, dass CROSS JOIN bei der Deklaration weder ON noch USING verwendet. Dies unterscheidet sich von den JOIN Klauseln, die wir uns zuvor angesehen haben.

Nach der Durchführung eines CROSS JOIN sieht die Ergebnismenge wie folgt aus:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson41Sales
2Ned Flanders11Sales
3Barney Gumble51Sales
4Clancy Wiggum31Sales
5Moe SzyslakNULL1Sales
1Homer Simpson42Engineering
2Ned Flanders12Engineering
3Barney Gumble52Engineering
4Clancy Wiggum32Engineering
5Moe SzyslakNULL2Engineering
1Homer Simpson43Human Resources
2Ned Flanders13Human Resources
3Barney Gumble53Human Resources
4Clancy Wiggum33Human Resources
5Moe SzyslakNULL3Human Resources
1Homer Simpson44Customer Service
2Ned Flanders14Customer Service
3Barney Gumble54Customer Service
4Clancy Wiggum34Customer Service
5Moe SzyslakNULL4Customer Service
1Homer Simpson45Research And Development
2Ned Flanders15Research And Development
3Barney Gumble55Research And Development
4Clancy Wiggum35Research And Development
5Moe SzyslakNULL5Research And Development

Unsere Ergebnismenge enthält alle möglichen Kombinationen zwischen den beiden Tabellen. Selbst wenn die verwendeten Tabellen nur wenige Daten enthalten, wie bei unserer employees und departments Tabellen, kann eine riesige Ergebnismenge entstehen, wenn sie in Verbindung mit der SQL-Klausel CROSS JOIN verwendet werden.

SQL NATURAL JOIN

Ein NATURAL JOIN ist eine Art von JOIN, der Tabellen auf der Grundlage von Spalten mit demselben Namen und Datentyp kombiniert. Wenn Sie die NATURAL JOIN Klausel verwenden, wird eine implizite JOIN Klausel für Sie erstellt, die auf den gemeinsamen Spalten in den beiden zu verbindenden Tabellen basiert.

Gemeinsame Spalten sind Spalten, die in beiden Tabellen den gleichen Namen haben. Es ist nicht erforderlich, die Spaltennamen für die Verknüpfung anzugeben. Die resultierende Tabelle enthält keine wiederholten Spalten.

Die Syntax für eine NATURAL JOIN ist einfach:

SELECT * FROM employees 
NATURAL JOIN departments;

Wenn diese Abfrage ausgeführt wird, erzeugt sie die folgende Ergebnismenge:

department_ididemployee_namedepartment_name
12Ned FlandersSales
34Clancy WiggumHuman Resources
41Homer SimpsonCustomer Service
53Barney GumbleResearch And Development

Der NATURAL JOIN wird für die Spalte ausgeführt, die von unseren beiden Tabellen gemeinsam genutzt wird. In diesem Fall ist es die Spalte department_id. Diese übereinstimmende Spalte wird nur einmal in unserer Ergebnismenge angezeigt.

4. Was ist ein OUTER JOIN?

Mit einem SQL OUTER JOIN können nicht übereinstimmende Zeilen in einer oder beiden Tabellen zurückgegeben werden. Es gibt mehrere Varianten der OUTER JOIN Klausel, von denen wir einige bereits in diesem Artikel behandelt haben. Hier sind die üblichen Arten von OUTER JOIN Klauseln:

  • LEFT OUTER JOIN
  • RIGHT OUTER JOIN
  • FULL OUTER JOIN

LEFT JOIN ist ein Synonym für LEFT OUTER JOIN. Die Funktionalität ist bei beiden identisch. Dies könnte eine der SQL JOIN Interviewfragen sein, die Ihnen gestellt werden! Das Gleiche gilt für RIGHT JOIN und RIGHT OUTER JOIN sowie FULL JOIN und FULL OUTER JOIN. Schauen wir uns ein Beispiel für beides an.

SQL LEFT OUTER JOIN

Verwenden Sie LEFT OUTER JOIN, wenn Sie alle Ergebnisse aus der ersten Tabelle haben möchten. Ein LEFT OUTER JOIN gibt nur passende Zeilen aus der zweiten Tabelle zurück.

Die Syntax für die LEFT OUTER JOIN-Klausel lautet wie folgt:

SELECT * FROM employees emp 
LEFT OUTER JOIN departments dep 
ON emp.department_id = dep.department_id;

Das Ergebnis der Ausführung dieser SQL-Abfrage ist die folgende Ergebnismenge:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research And Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL

Beachten Sie, dass unser Mitarbeiter Moe Syzslak in die Ergebnismenge aufgenommen wurde, obwohl es keine passende department_id in der departments Tabelle gibt. Genau das ist der Zweck der LEFT OUTER JOIN-Klausel. Nämlich alle Daten aus unserer linken Tabelle einzuschließen, unabhängig davon, ob Übereinstimmungen gefunden wurden.

SQL RIGHT OUTER JOIN

RIGHT OUTER JOIN ist ähnlich wie LEFT OUTER JOIN, mit der Ausnahme, dass die Aktion, die an den verbundenen Tabellen durchgeführt wird, umgekehrt ist. Er führt im Wesentlichen die umgekehrte Aktion von LEFT OUTER JOIN aus. Das bedeutet, dass RIGHT OUTER JOIN alle Werte aus der rechten Tabelle zurückgibt, plus die übereinstimmenden Werte aus der linken Tabelle oder NULL, falls es keine Übereinstimmung gibt.

Wenn wir den RIGHT OUTER JOIN auf unsere employees und departments Tabellen anwenden, sieht der Code wie folgt aus:

SELECT * FROM employees emp 
RIGHT OUTER JOIN departments dep 
ON emp.department_id = dep.department_id;

Hier wird unsere employees Tabelle als die linke Tabelle behandelt, da dies die erste Tabelle ist, die wir angeben.

Das Ergebnis der Ausführung dieser SQL-Abfrage ist die folgende Ergebnismenge:

idemployee_namedepartment_iddepartment_iddepartment_name
2Ned Flanders11Sales
NULLNULLNULL2Engineering
4Clancy Wiggum33Human Resources
1Homer Simpson44Customer Service
3Barney Gumble55Research And Development

Die RIGHT OUTER JOIN beginnt mit der Auswahl von Daten aus der rechten Tabelle, in diesem Fall aus unserer departments Tabelle. Es gleicht jede Zeile der rechten Tabelle mit jeder Zeile der linken Tabelle ab. Wenn die Bedingung JOIN für beide Zeilen den Wert "wahr" ergibt, werden die Spalten zu einer neuen Zeile kombiniert und diese neue Zeile in die Ergebnismenge aufgenommen.

SQL FULL OUTER JOIN

SQL FULL OUTER JOIN kombiniert die Ergebnisse von linken und rechten Outer-Joins. Die verbundene Tabelle enthält alle Datensätze aus beiden Tabellen und füllt NULLs für fehlende Übereinstimmungen auf beiden Seiten ein. Ein FULL OUTER JOIN gibt alle Zeilen aus den verbundenen Tabellen zurück, unabhängig davon, ob sie übereinstimmen oder nicht.

Schauen wir uns die Syntax der SQL-Klausel FULL OUTER JOIN an:

SELECT * FROM employees emp 
FULL OUTER JOIN departments dep 
ON emp.department_id = dep.department_id;

Wenn diese SQL-Abfrage gegen unsere employees und departments Tabellen ausgeführt wird, ergibt sich das folgende Ergebnis:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research And Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL
2Ned Flanders11Sales
NULLNULL2Engineering
4Clancy Wiggum33Human Resources
1Homer Simpson44Customer Service
3Barney Gumble55Research And Development

Sie werden feststellen, dass diese Datenmenge eine Kombination aus unseren früheren Abfragen LEFT OUTER JOIN und RIGHT OUTER JOIN ist.

5. Was ist der Unterschied zwischen einem SQL INNER JOIN und einem SQL LEFT JOIN?

Es gibt einige wichtige Unterschiede, die Sie sich bei diesen häufig verwendeten JOIN Varianten merken sollten. INNER JOIN gibt Zeilen zurück, wenn es eine Übereinstimmung in beiden Tabellen gibt. LEFT JOIN gibt alle Zeilen aus der linken Tabelle und alle übereinstimmenden Zeilen aus der rechten Tabelle zurück.

Schauen wir uns ein praktisches Beispiel an, um die Unterschiede zwischen diesen Klauseln zu untersuchen. Dies wird Ihnen helfen, diese häufig gestellte Frage in einem SQL JOIN-Interview sicher zu beantworten.

Stellen Sie sich vor, wir haben zwei Tabellen:

  • employees - Diese Tabelle enthält die ID, den Namen und die Abteilungs-ID eines jeden Mitarbeiters.
idemployee_namedepartment_id
1Homer Simpson4
2Ned Flanders1
3Barney Gumble5
4Clancy Wiggum3
5Moe SyzslakNULL
  • departments - Diese Tabelle enthält die ID und den Namen der einzelnen Abteilungen.
department_iddepartment_name
1Sales
2Engineering
3Human Resources
4Customer Service
5Research and Development

Der folgende SQL-Code sucht nach Übereinstimmungen zwischen den Tabellen employees und departments auf der Grundlage der Spalte department_id:

SELECT * from employees emp 
INNER JOIN departments dep 
ON emp.department_id = dep.department_id;

Wenn Sie diesen Code ausführen, erhalten Sie folgendes Ergebnis:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research and Development
4Clancy Wiggum33Human Resources

Wenn Sie sich unser Ergebnis ansehen, werden Sie feststellen, dass unser Mitarbeiter Moe Szyslak fehlt. In unserer employees Tabelle hat dieser Mitarbeiter keine aktuelle department_id. Daher konnte keine Übereinstimmung gefunden werden, wenn Sie versuchen, die departments Tabelle über diese Spalte zu verknüpfen. Daher wird der Mitarbeiter aus dem Ergebnis ausgeschlossen.

Verwenden wir nun LEFT JOIN und sehen wir uns an, welches Ergebnis das bringt. Ein SQL LEFT JOIN gibt alle Werte aus der linken Tabelle und die übereinstimmenden Werte aus der rechten Tabelle zurück. Wenn keine Übereinstimmung gefunden werden konnte, gibt LEFT JOIN einen NULL-Wert zurück.

Die Syntax für unsere SQL LEFT JOIN Klausel lautet wie folgt:

SELECT * FROM employees emp 
LEFT JOIN departments dep 
ON emp.department_id = dep.department_id;

Das Schlüsselwort ON funktioniert genauso wie in unserem Beispiel INNER JOIN. Wir suchen nach übereinstimmenden Werten zwischen der Spalte department_id in unserer employees Tabelle und der Spalte department_id unserer departments Tabelle.

Hier wird unsere employees Tabelle als die linke Tabelle behandelt, da dies die erste Tabelle ist, die wir angeben.

Das Ergebnis der Ausführung dieser SQL-Abfrage ist die folgende Ergebnismenge:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research and Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL

Beachten Sie, dass Moe Szyslak in diese Ergebnismenge aufgenommen wurde, obwohl es keine übereinstimmende department_id in der departments Tabelle gibt. Dies ist genau der Zweck der LEFT JOIN-Klausel, nämlich alle Daten aus der linken Tabelle einzuschließen, unabhängig davon, ob eine Übereinstimmung gefunden wurde.

6. Was ist der Unterschied zwischen einem LEFT JOIN und einem FULL JOIN?

Dies ist eine der SQL JOIN Fragen, die Ihnen im Laufe des Bewerbungsgesprächs gestellt werden können.

Wie bereits erwähnt, gibt ein SQL LEFT JOIN alle Werte aus der linken Tabelle und die übereinstimmenden Werte aus der rechten Tabelle zurück. Wenn keine Übereinstimmung gefunden wird, gibt LEFT JOIN stattdessen einen NULL-Wert zurück. Ein SQL FULL JOIN gibt alle Zeilen aus den verbundenen Tabellen zurück, unabhängig davon, ob sie übereinstimmen oder nicht. Sie kombiniert im Wesentlichen die Funktionalität von LEFT JOIN und RIGHT JOIN.

Vergleichen wir nun die Ergebnismenge einer LEFT JOIN-Klausel mit der Ergebnismenge eines FULL JOIN.

Nachfolgend finden Sie eine Abfrage, die den LEFT JOIN verwendet:

SELECT * FROM employees emp 
LEFT JOIN departments dep 
ON emp.department_id = dep.department_id;

Hier wird unsere employees Tabelle als linke Tabelle, da dies die erste Tabelle ist, die wir angeben.

Das Ergebnis der Ausführung dieser SQL-Abfrage ist:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research and Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL

Sehen wir uns an, wie dies im Vergleich zur Verwendung eines SQL FULL JOIN ist. Die Syntax ist ähnlich, wie der folgende Code zeigt:

SELECT * FROM employees emp 
FULL JOIN departments dep 
ON emp.department_id = dep.department_id;

Wenn diese SQL-Abfrage gegen unsere employees und departments Tabellen ausgeführt wird, ergibt sich folgendes Ergebnis:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research and Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL
NULLNULLNULL2Engineering

Vergleichen Sie diese Ergebnismenge mit den Ergebnissen unserer Abfragen LEFT JOIN und RIGHT JOIN. Sie können sehen, dass für die Abteilung Engineering keine Übereinstimmung gefunden wurde, aber sie wurde trotzdem zurückgegeben. Es ist klar, dass diese Daten eine Kombination der Daten sind, die von unseren vorherigen Beispielen zurückgegeben wurden. Dieser spezielle Typ der JOIN Klausel erzeugt eine große Ergebnismenge. Überlegen Sie genau, bevor Sie einen SQL FULL JOIN verwenden.

7. Schreiben Sie eine Abfrage, die diese beiden Tabellen JOINt, so dass alle Zeilen aus Tabelle 1 im Ergebnis enthalten sind.

Bei einem Vorstellungsgespräch für eine Stelle als Datenanalytiker oder Softwareentwickler werden Sie möglicherweise gebeten, eine technische Aufgabe mit SQL zu lösen. Eine häufige SQL JOIN Aufgabe ist das Schreiben einer Abfrage, die zwei Tabellen auf eine bestimmte Weise verbindet. Stellen Sie sich vor, Sie werden gebeten, eine Abfrage zu schreiben, die zwei Tabellen so verbindet, dass alle Zeilen aus Tabelle 1 im Ergebnis enthalten sind.

Zunächst müssen Sie das Konzept der rechten und linken Tabellen verstehen.

LEFT JOIN

Im obigen Diagramm ist die Tabelle 1 die linke Tabelle und die Tabelle 2 die rechte Tabelle. Mit anderen Worten, die linke Tabelle steht in der Abfrage an erster Stelle. Sie hat ihren Namen daher, dass sie links von der Verknüpfungsbedingung steht. Die rechte Tabelle kommt nach dem Schlüsselwort JOIN.

Die LEFT JOIN Klausel wählt Daten aus, die in der linken Tabelle beginnen. Sie gleicht jede Zeile aus der linken Tabelle mit Zeilen aus der rechten Tabelle ab, basierend auf der Bedingung der JOIN Klausel. Sie gibt alle Werte aus der linken Tabelle sowie die übereinstimmenden Werte aus der rechten Tabelle zurück. Wenn keine Übereinstimmung gefunden wird, gibt LEFT JOIN einen NULL-Wert zurück. Das bedeutet, dass, wenn die ON-Klausel keine Datensätze in der rechten Tabelle findet, die JOIN-Klausel diese Zeile trotzdem zurückgibt, aber mit einem NULL-Wert in jeder Spalte der rechten Tabelle.

Für unser praktisches Beispiel werden wir die employees und departments Tabellen aus unserem vorherigen Beispiel verwenden:

employees - Diese Tabelle enthält die ID, den Namen und die Abteilungs-ID der einzelnen Mitarbeiter.

idemployee_namedepartment_id
1Homer Simpson4
2Ned Flanders1
3Barney Gumble5
4Clancy Wiggum3
5Moe SyzslakNULL

departments - Diese Tabelle enthält die ID und den Namen der einzelnen Abteilungen.

department_iddepartment_name
1Sales
2Engineering
3Human Resources
4Customer Service
5Research and Development

Wenn wir alle Zeilen aus Tabelle 1 behalten wollen (in diesem Fall employees), müssen wir diese als unsere linke Tabelle angeben.

Die Syntax für diese LEFT JOIN Klausel lautet wie folgt:

SELECT * FROM employees emp 
LEFT JOIN departments dep 
ON emp.department_id = dep.department_id;

Die Ausführung dieser Abfrage führt zu dieser Ergebnismenge:

idemployee_namedepartment_iddepartment_iddepartment_name
1Homer Simpson44Customer Service
2Ned Flanders11Sales
3Barney Gumble55Research and Development
4Clancy Wiggum33Human Resources
5Moe SzyslakNULLNULLNULL

Beachten Sie, dass der Mitarbeiter Moe Szyslak in diese Ergebnismenge aufgenommen wurde, obwohl es keine passende department_id in der departments Tabelle gibt. Dies ist genau der Zweck der LEFT JOIN-Klausel, nämlich alle Daten aus der linken Tabelle einzubeziehen, unabhängig davon, ob in der rechten Tabelle eine Übereinstimmung gefunden wurde.

8. Wie fügt man mehr als zwei Tabellen zusammen?

Die Verknüpfung von mehr als zwei Tabellen in einer einzigen SQL-Abfrage kann für Neulinge recht schwierig zu verstehen sein. Das folgende Beispiel soll dies verdeutlichen.

Sie führen einen JOIN auf mehr als zwei Tabellen aus, wenn die Daten, die Sie in das Ergebnis aufnehmen möchten, in drei oder mehr Tabellen vorhanden sind. Ein Multi-Tabellen-Join erfordert aufeinanderfolgende JOIN Operationen: Zuerst verbinden Sie die erste und die zweite Tabelle und erhalten eine virtuelle Ergebnismenge; dann verbinden Sie eine andere Tabelle mit dieser virtuellen Tabelle. Sehen wir uns ein Beispiel an.

Für unser Beispiel eines multiplen JOINs nehmen wir an, dass wir drei Tabellen haben:

departments - Diese Tabelle enthält die ID und den Namen der einzelnen Abteilungen.

department_iddepartment_name
1Sales
2Engineering
3Human Resources
4Customer Service
5Research and Development

office - Diese Tabelle enthält die Adresse für jedes Büro.

idaddress
15 Wisteria Lane, Springfield, USA
2124 Chestmount Street, Springfield, USA
36610 Bronzeway, Springfield, USA
4532 Executive Lane, Springfield, USA
510 Meadow View, Springfield, USA

department_office - Diese Tabelle verknüpft die Büroinformationen mit der zugehörigen Abteilung. Einige Abteilungen können sich über mehrere Büros erstrecken.

office_iddepartment_id
11
23
32
44
55
21
51
43

In unserem Fall haben wir eine Verknüpfungstabelle namens department_office die Links oder Beziehungen zwischen departments zu Büros herstellt.

Um eine SQL-Abfrage zu schreiben, die die Attribute department_name und address nebeneinander ausgibt, müssen wir drei Tabellen verbinden:

  • Die erste JOIN Klausel verbindet departments und department_office und erstellt eine temporäre Tabelle, die eine office_id Spalte haben wird.
  • Die zweite JOIN-Anweisung verbindet diese temporäre Tabelle mit der office Tabelle auf office_id, um das gewünschte Ergebnis zu erhalten.

Sehen Sie sich die folgende SQL-Abfrage an:

SELECT department_name, address
FROM departments d 
JOIN department_office do ON d.department_id=do.department_id 
JOIN office o ON do.office_id=o.id;

Wie Sie sehen, wollen wir nur zwei Spalten abrufen, den Abteilungsnamen und die zugehörige Adresse. Wir verbinden die department_office Tabelle, die einen Link sowohl zu unserer departments und office Tabelle hat. Dies ermöglicht es uns dann, die Tabelle office zu verbinden, die die Spalte address in unserer Anweisung SELECT enthält.

Die Ausführung dieses Codes ergibt die folgende Ergebnismenge:

department_nameaddress
Sales5 Wisteria Lane, Springfield, USA
Engineering124 Chestmount Street, Springfield, USA
Human Resources6610 Bronzeway, Springfield, USA
Customer Service532 Executive Lane, Springfield, USA
Research and Development10 Meadow View, Springfield, USA
Sales124 Chestmount Street, Springfield, USA
Sales10 Meadow View, Springfield, USA
Human Resources532 Executive Lane, Springfield, USA

Das war's! Wir haben die gewünschte Ausgabe mit jeder Abteilung und der entsprechenden Adresse. Beachten Sie, dass unsere Vertriebsabteilung die größte ist und sich über drei verschiedene Büros erstreckt. Die zweitgrößte Abteilung ist die Personalabteilung, die sich über zwei verschiedene Büros erstreckt.

Sie sehen, wie die JOIN Klauseln für mehrere Tabellen verwendet werden können, um Verknüpfungen zwischen Tabellen zu erstellen, die gemeinsame Spalten haben. Es gibt viele verschiedene Situationen, in denen das Verbinden mehrerer Tabellen nützlich sein kann. Weitere Informationen finden Sie in diesem Artikel über das JOIN von drei oder mehr Tabellen in SQL.

9. Wie verbindet man eine Tabelle mit sich selbst?

Viele Anfänger wissen es nicht, aber man kann eine Tabelle mit sich selbst verknüpfen. Eine solche Operation wird gemeinhin als Self-Join bezeichnet. Er ist nützlich, um hierarchische Daten abzufragen oder Zeilen innerhalb derselben Tabelle zu vergleichen. Bei der Verwendung eines Self-Join ist es wichtig, für jede Tabelle einen SQL-Alias zu verwenden.

Für unser Self-Join-Beispiel werden wir die folgende Tabelle verwenden:

employee - In dieser Tabelle werden die Namen aller Mitarbeiter des Unternehmens, die IDs ihrer Abteilungen und die IDs ihrer Vorgesetzten gespeichert.

idemployee_namedepartment_idmanager_id
1Montgomery Burns4NULL
2Waylon Smithers11
3Homer Simpson21
4Carl Carlson51
5Lenny Leonard31
6Frank Grimes23

Angenommen, wir wollen eine Ergebnismenge, die nur Mitarbeiter mit ihren Vorgesetzten anzeigt. Dies lässt sich leicht mit Tabellenaliases in Kombination mit einem Self-Join bewerkstelligen. Für unseren ersten Self-Join verwenden wir einen SQL LEFT JOIN. Sehen Sie sich den Code unten an:

SELECT 
e.employee_name AS 'Employee',
m.employee_name AS 'Manager'
FROM employee e
LEFT JOIN employee m ON m.id = e.manager_id

Achten Sie auf den Fehler der mehrdeutigen Spalte, der leicht auftreten kann, wenn Sie beim Schreiben einer Self-Join-Abfrage nicht vorsichtig sind. Um diesen Fehler zu vermeiden, müssen Sie SQL-Aliase verwenden, d.h. Sie müssen jedem Vorkommen der Tabelle in Ihrer SQL-Abfrage einen Alias zuweisen. Dies wird durch den folgenden Ausschnitt aus der obigen Abfrage veranschaulicht:

FROM employee e LEFT JOIN employee m

Sie müssen auch den Spaltennamen den Tabellenalias voranstellen, damit klar ist, auf welche Tabelle sich jede Spalte bezieht. Wir haben ausdrücklich e.employee_name und m.employee_name angegeben.

Diese Regeln helfen Ihnen, eine SQL-Self-Join-Abfrage erfolgreich auszuführen und dabei den Fehler einer nicht eindeutig bezeichneten Spalte zu vermeiden.

Die Ausführung der obigen Abfrage ergibt die folgende Ergebnismenge:

EmployeeManager
Montgomery BurnsNULL
Waylon SmithersMontgomery Burns
Homer SimpsonMontgomery Burns
Carl CarlsonMontgomery Burns
Lenny LeonardMontgomery Burns
Frank GrimesHomer Simpson

Das ist unser gewünschtes Ergebnis! Sie können die einzelnen Mitarbeiter und ihre jeweiligen Vorgesetzten deutlich erkennen. Die meisten Mitarbeiter unterstehen Mr. Burns, nur der Manager von Frank Grimes ist Homer Simpson. Beachten Sie den NULL-Wert unter der Spalte Manager für Montgomery Burns. Das liegt daran, dass Montgomery Burns keinen Vorgesetzten hat - er ist der Chef.

Ändern wir die Abfrage geringfügig und verwenden diesmal eine INNER JOIN:

SELECT 
e.employee_name AS 'Employee',
m.employee_name AS 'Manager'
FROM employee e
INNER JOIN tbl_employee m ON m.id = e.manager_id
EmployeeManager
Waylon SmithersMontgomery Burns
Homer SimpsonMontgomery Burns
Carl CarlsonMontgomery Burns
Lenny LeonardMontgomery Burns
Frank GrimesHomer Simpson

Der einzige große Unterschied ist das Fehlen von Montgomery Burns in der Spalte Mitarbeiter. Das liegt daran, dass der Wert manager_id für ihn NULL war. INNER JOIN gibt nur übereinstimmende Spalten zurück, wobei NULL-Werte ausgeschlossen sind.

Jetzt können Sie Self-Joins durchführen, die in vielen verschiedenen Anwendungsfällen einsetzbar sind. Wenn Sie weitere Beispiele für Self-Joins sehen möchten, lesen Sie diesen ausgezeichneten illustrierten Leitfaden zu Self-Joins.

10. Muss die JOIN-Bedingung gleich sein?

Ein Non-Equi-Join ist jede JOIN Klausel, die keine Gleichheit ( = ) als JOIN-Bedingung verwendet. Sie können gängige Vergleichsoperatoren (z.B. <, >, <=, >=, != und <>) in Verbindung mit Join-Klauseln verwenden. Der BETWEEN Operator kann ebenfalls verwendet werden.

Es gibt viele Situationen, in denen sich Non-Equi-Joins als nützlich erweisen können. Zum Beispiel bei der Auflistung eindeutiger Paare, der Auflistung von Datensätzen innerhalb eines Bereichs und der Identifizierung von Duplikaten. Schauen wir uns unser letztes Anwendungsbeispiel an: Die Identifizierung von Duplikaten mit einem Non-Equi Join.

Schauen wir uns zunächst die Daten an, die wir abfragen werden. Wir werden für dieses Beispiel nur eine Tabelle verwenden, die bekannte employee Tabelle:

idemployee_namedepartment_idmanager_id
1Montgomery Burns4NULL
2Waylon Smithers11
3Homer Simpson21
4Carl Carlson51
5Lenny Leonard31
6Frank Grimes23
7Lenny Leonard31

Wenn wir schnell alle doppelten Werte identifizieren möchten, würden wir die folgende Abfrage schreiben, die einen Non-Equi-Join nutzt:

SELECT e1.id, e1.employee_name, e2.id, e2.employee_name
FROM employee e1
JOIN employee e2
ON e1.employee_name = e2.employee_name AND e1.id < e2.id

Wenn wir uns die JOIN -Klausel genauer ansehen, können wir feststellen, dass sie zwei Bedingungen enthält:

  1. Sie gleicht Datensätze ab, die denselben Namen haben.
  2. Sie ruft Datensätze ab, deren ID kleiner ist als die ID der temporären selbstverknüpften Tabelle.

Die Ausführung dieser Abfrage ergibt die folgende Ergebnismenge:

idemployee_nameidemployee_name
5Lenny Leonard7Lenny Leonard

Wir können sehen, dass Lenny Leonard einen doppelten Datensatz in dieser Tabelle hat. Duplikate können unvorhersehbare Fehler verursachen und die Daten in Ihren Berichten verfälschen.

Dies war nur eines von vielen möglichen Beispielen, die die Nützlichkeit von Non-Equi-Joins demonstrieren. Es gibt weitere ausgezeichnete Ressourcen im Internet, wie z.B. diesen Artikel, der praktische Anwendungen von Non-Equi-Joins zeigt.

Die 10 wichtigsten SQL-Interview-Fragen beantwortet

Sie sind nun mit dem nötigen Wissen ausgestattet, um komplexe SQL JOIN Fragen im Vorstellungsgespräch zu beantworten. Wenn Sie sich immer noch überfordert oder unsicher in Bezug auf SQL JOIN Klauseln fühlen, finden Sie hier ausgezeichnete Ratschläge, wie Sie SQL JOIN Klauseln am besten üben können.

Sie können dies in Kombination mit dem SQL JOIN-Spickzettel verwenden, der sowohl für neue als auch für erfahrene SQL-Programmierer ein hervorragendes Nachschlagewerk darstellt. Egal, ob Sie neu in SQL sind oder das Gefühl haben, dass Sie Ihr Wissen zu diesem Thema auffrischen müssen, dieser interaktive SQL-JOINs Kurs ist eine ausgezeichnete Lernressource.