Heim  >  Artikel  >  Datenbank  >  So verwenden Sie Join in SQL

So verwenden Sie Join in SQL

伊谢尔伦
伊谢尔伦Original
2016-12-03 10:37:231352Durchsuche

Was das Schlüsselwort „join“ in der SQL-Anweisung betrifft, handelt es sich um ein häufig verwendetes Schlüsselwort, das jedoch nicht leicht zu verstehen ist. Das folgende Beispiel gibt eine einfache Erklärung – Erstellen von Tabellen Tabelle1, Tabelle2:
create table table1(id int,name varchar (10))
Tabelle erstellen table2(id int,score int)
In Tabelle1 einfügen, 1 auswählen,'lee'
In Tabelle1 einfügen, 2 auswählen,'zhang'
In Tabelle1 einfügen, 4 auswählen, 'wang'
In Tabelle2 einfügen, 1,90 auswählen
In Tabelle2 einfügen, 2,100 auswählen
In Tabelle2 einfügen, 3,70 auswählen
wie in der Tabelle gezeigt
--- ----- ---------------------------------------------
Tabelle1 | Tabelle2 |
---------------- ----- -----
ID-Name |ID-Score |
1 Lee |1 90 |
2 Zhang |2 100 |
4 Wang |3 70 |
- ----- --------------------------------------------- -----

folgend Alle werden im Abfrageanalysator ausgeführt

1. Outer Join
1 >

2. Left Join: Left Join oder Left Outer Join

(1) Die Ergebnismenge eines Left Outer Joins umfasst alle Zeilen der linken Tabelle, die in der LEFT OUTER-Klausel angegeben sind, nicht nur die Zeilen, mit denen übereinstimmt Spalten verbinden. Wenn eine Zeile in der linken Tabelle keine passende Zeile in der rechten Tabelle hat, sind alle Auswahllistenspalten der rechten Tabelle in der zugehörigen Ergebnissatzzeile null.
(2)SQL-Anweisung
select * from table1 left join table2 on table1.id=table2.id
-------------Ergebnis------- ------
ID-Name-ID-Score
---------------------------------
1 Lee 1 90
2 Zhang 2 100
4 Wang NULL NULL
----------------------------------------- ------
Hinweis: Enthält alle Klauseln von Tabelle1, gibt die entsprechenden Felder von Tabelle2 gemäß den angegebenen Bedingungen zurück und zeigt null an, wenn sie nicht erfüllt sind

3. Rechtsverknüpfung: Rechtsverknüpfung oder Rechtsverknüpfung äußerer Join

(1) Der rechte äußere Join ist der umgekehrte Join des linken äußeren Joins. Alle Zeilen aus der rechten Tabelle werden zurückgegeben. Wenn eine Zeile in der rechten Tabelle keine entsprechende Zeile in der linken Tabelle hat, wird für die linke Tabelle null zurückgegeben.
(2)SQL-Anweisung
select * from table1 right join table2 on table1.id=table2.id
-------------Ergebnis------- ------
ID-Name-ID-Score
---------------------------------
1 Lee 1 90
2 Zhang 2 100
NULL NULL 3 70
----------------------------------------- ------
Hinweis: Enthält alle Klauseln von Tabelle2, gibt die entsprechenden Felder von Tabelle1 gemäß den angegebenen Bedingungen zurück und zeigt null an, wenn sie nicht erfüllt sind

4 Vollständiger äußerer Join: vollständiger Join oder Vollständiger äußerer Join

(1) Vollständiger äußerer Join gibt alle Zeilen aus der linken und rechten Tabelle zurück. Wenn es für eine Zeile keine passende Zeile in einer anderen Tabelle gibt, enthält die Auswahllistenspalte der anderen Tabelle Nullwerte. Wenn zwischen Tabellen übereinstimmende Zeilen vorhanden sind, enthält die gesamte Ergebnissatzzeile die Datenwerte aus der Basistabelle.
(2)SQL-Anweisung
select * from table1 full join table2 on table1.id=table2.id
-------------Ergebnis------- ------
ID-Name-ID-Score
---------------------------------
1 Lee 1 90
2 Zhang 2 100
4 Wang NULL NULL
NULL NULL 3 70
---------------------------------- --- -------
Hinweis: Gibt die Summe der linken und rechten Verknüpfungen zurück (siehe linke und rechte Verknüpfungen oben)

Innere Verknüpfung

1 werden mithilfe von Vergleichsoperatoren verglichen. Verbinden, um Spaltenwerte zu verbinden

2. Innerer Join: Join oder innerer Join

3.sql-Anweisung

select * from table1 join table2 on table1.id=table2 .id
-------------Ergebnis-------------
ID-Name ID-Score
-------- ------
1 Lee 1 90
2 Zhang 2 100
------------- -
Hinweis: Geben Sie nur die Spalten von Tabelle1 und Tabelle2 zurück, die die Bedingungen erfüllen

Äquivalent (gleicher Ausführungseffekt wie folgt)

A:wählen Sie a.*,b.* aus Tabelle1 a,Tabelle2 b aus, wobei a.id=b.id ist
B:wählen Sie * aus Tabelle1 aus, Cross-Join-Tabelle2, wobei Tabelle1.id=Tabelle2.id (Hinweis: Cross-Join Sie können Where nur verwenden, um später Bedingungen hinzuzufügen, nicht auf)

3. Cross-Join (vollständig)

1. Konzept: Ein Cross-Join ohne WHERE-Klausel erzeugt die beteiligten Tabellen im Join. Die Anzahl der Zeilen in der ersten Tabelle multipliziert mit der Anzahl der Zeilen in der zweiten Tabelle ergibt die Größe des kartesischen Produktergebnissatzes. (Der Cross-Join von Tabelle1 und Tabelle2 erzeugt 3*3=9 Datensätze)

2. Cross-Join: Cross-Join (ohne Bedingung, wo...)

3.sql-Anweisung

Wählen Sie * aus Tabelle1 Cross-Join-Tabelle2
-------------Ergebnis-------------
ID-Name ID-Score
--- -------------------------
1 Lee 1 90
2 Zhang 1 90
4 Wang 1 90
1 Lee 2 100
2 Zhang 2 100
4 Wang 2 100
1 Lee 3 70
2 Zhang 3 70
4 Wang 3 70
------ -- ---------------------
Hinweis: Geben Sie 3*3=9 Datensätze zurück, also ein kartesisches Produkt

4.etc (Entspricht dem folgenden Ausführungseffekt)

A:select * from table1,table2


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn