Dieser Artikel vermittelt Ihnen relevantes Wissen über SQL, in dem hauptsächlich die relevanten Inhalte zu Tabellenverbindungen vorgestellt werden. SQL Server unterstützt eine Vielzahl von Verbindungen, einschließlich Inner Joins, Left Joins, Right Joins, Cross Joins und Full Joins Ich hoffe, dass es für alle hilfreich ist.
Empfohlenes Lernen: „SQL-Tutorial“
In einer relationalen Datenbank werden Daten in mehreren logischen Tabellen verteilt. Um einen vollständigen und aussagekräftigen Datensatz zu erhalten, müssen Sie Joins verwenden, um die Daten in diesen Tabellen abzufragen. SQL Server unterstützt eine Vielzahl von Verbindungen, darunter Inner Joins, Left Joins, Right Joins, Cross Joins und Full Outer Joins.
1. Innerer Join
Die innere Join-Klausel wird verwendet, um Daten aus zwei oder mehr verwandten Tabellen abzufragen. Die Syntax der INNER JOIN-Klausel:
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p INNER JOIN production.categories c ON c.category_id = p.category_id
Hinweis: Vor dem abzufragenden Feld muss der Tabellenname oder Tabellenalias stehen, z. B.: p.product_name
Wobei das folgende FROM die Haupttabelle ist, und dann der INNER JOIN gefolgt wird. Die Tabelle ist die zu verknüpfende Tabelle. Die Haupttabelle und die Join-Tabelle werden verglichen, um alle Zeilen zu finden, die die Bedingungen erfüllen. Wenn das Berechnungsergebnis des Verbindungsprädikats wahr ist, werden die Haupttabelle und die Verbindungstabelle zu einem neuen Ergebnissatz zusammengeführt, wie in der folgenden Abbildung dargestellt:
Mehrere Tabellenverbindungen innerhalb der Verbindung, wie unten dargestellt:
SELECT p.product_name, p.list_price ,c.category_name, b.brand_nameFROM production.products p INNER JOIN production.categories c ON c.category_id = p.category_id INNER JOIN production.brands b ON b.brand_id = p.brand_id
2. Left Join
Verwenden Sie die LEFT JOIN-Klausel im linken Join, um Daten aus mehreren Tabellen abzufragen. Sie gibt alle Zeilen in der linken Tabelle und übereinstimmende Zeilen in der rechten Tabelle zurück. Wenn in der rechten Tabelle keine passende Zeile gefunden wird, verwenden Sie stattdessen NULL für die Anzeige, wie in der Abbildung gezeigt:
Verwenden Sie die LEFT JOIN-Anweisung zum Verbinden: wie unten gezeigt:
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p LEFT JOIN production.categories c ON c.category_id = p.category_id
In der obigen Syntax die Tabelle nach FROM ist die linke Tabelle (Produktion.Produkte), und auf den LEFT JOIN folgt die rechte Tabelle (Produktion.Kategorien).
3. Right Join
Verwenden Sie die RIGHT JOIN-Klausel im Right Join, um zwei oder mehr Tabellen abzufragen. Die rechte Abfrage ist genau das Gegenteil der linken Abfrage. Sie gibt alle Zeilen der rechten Tabelle und die passenden Zeilen der linken Tabelle zurück. Wenn in der linken Tabelle keine passende Zeile gefunden wird, wird wie gezeigt NULL zurückgegeben in der Abbildung:
Verwenden Sie die RIGHT JOIN-Anweisung, um Folgendes zu verbinden:
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p RIGHT JOIN production.categories c ON c.category_id = p.category_id
In der obigen Syntax ist die Tabelle nach FROM die linke Tabelle (Produktion.Produkte) und die rechte Tabelle (Produktion.Kategorien). unmittelbar gefolgt von RIGHT JOIN.
4. Cross Join
CROSS JOIN verbindet zwei oder mehr nicht zusammenhängende Tabellen. Das Folgende ist die Syntax von CROSS JOIN zwischen zwei Tabellen, zwei Schreibweisen:
SELECT T1.select_list FROM T1 CROSS JOIN T2;
oder
SELECT T1.select_list FROM T1, T2;
CROSS JOIN verbindet jede Zeile in der ersten Tabelle (T1) mit jeder Zeile in der zweiten Tabelle (T2). Mit anderen Worten: Ein Cross-Join gibt das kartesische Produkt der Zeilen in den beiden Tabellen zurück. Im Gegensatz zu INNER JOIN oder LEFT JOIN stellt ein Cross-Join keine Beziehung zwischen den verbundenen Tabellen her.
Angenommen, die T1-Tabelle enthält drei Zeilen: 1, 2 und 3, und die T2-Tabelle enthält drei Zeilen: A, B und C. CROSS JOIN entnimmt eine Zeile aus der ersten Tabelle (T1) und erstellt für jede Zeile in der zweiten Tabelle (T2) eine neue Zeile. Dann wird dasselbe für die nächste Zeile in der ersten Tabelle (T1) durchgeführt und so weiter. In dieser Abbildung erstellt der CROSS JOIN insgesamt 9 Zeilen.
5. Self-Join
Self-Join wird verwendet, um eine Tabelle mit sich selbst (der gleichen Tabelle) zu verbinden. Es ist nützlich, um hierarchische Daten abzufragen oder Zeilen in derselben Tabelle zu vergleichen.
Self-Join verwendet die Inner-Join- oder Left-Join-Klausel. Da Abfragen, die Self-Joins verwenden, auf dieselbe Tabelle verweisen, werden Tabellenaliase verwendet, um den Tabellen in der Abfrage unterschiedliche Namen zuzuweisen.
Hinweis: Wenn Sie in einer Abfrage mehrmals auf dieselbe Tabelle verweisen, ohne Tabellenaliase zu verwenden, tritt ein Fehler auf.
Beispiel:
SELECT t1.select_list FROM T1 t1INNER JOIN T1 t2 ON t1.category_id = t2.category_id
Sie können hier in INNER JOIN andere Klauseln verwenden, wie zum Beispiel: LEFT JOIN, RIGHT JOIN
6. Vollständiger äußerer Join
FULL OUTER JOIN, wenn links oder rechts ein passendes Element vorhanden ist right table , der Befehl gibt alle Zeilen zurück. Wie in der Abbildung gezeigt:
Verwenden Sie FULL OUTER JOIN, um die Daten in der pm.projects-Tabelle und der pm.member-Tabelle abzufragen:
SELECT m.name member, p.title project FROM pm.members m FULL OUTER JOIN pm.projects p ON p.id = m.project_id;
pm.projects-Tabellendaten:
pm.member-Tabellendaten:
Abfrageergebnisse:
Empfohlenes Lernen: „SQL-Tutorial“
Das obige ist der detaillierte Inhalt vonLassen Sie uns über SQL-Tabellenverbindungen sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!