Heim  >  Artikel  >  Datenbank  >  Welche Anweisungen werden in Multi-Table-Join-Abfragen verwendet?

Welche Anweisungen werden in Multi-Table-Join-Abfragen verwendet?

醉折花枝作酒筹
醉折花枝作酒筹Original
2021-06-25 15:34:116588Durchsuche

In MySQL können Sie die „Inner Join“-Anweisung verwenden, um Intra-Join-Abfragen für mehrere Tabellen durchzuführen. Sie müssen nur „select * from table inner joint table on table 1. field = table 2. field;“ verwenden. Stellungnahme. Kombinieren Sie Datensätze aus zwei Tabellen und geben Sie Datensätze mit passenden zugehörigen Feldern zurück.

Welche Anweisungen werden in Multi-Table-Join-Abfragen verwendet?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Inner Join

Join oder Inner Join

SQL-Anweisung: Wählen Sie * aus dem Inner-Join-Score des Schülers für Student aus.Num=score.Stu_id;

Die Anweisung zu diesem Zeitpunkt entspricht: Wählen Sie * aus dem Schüler aus, bewerten Sie den Schüler . ID=course.ID;

Erweiterte Informationen:

Outer Join

1. Left Join Left Join oder Left Outer Join

SQL-Anweisung: Wählen Sie * aus student.Num=score.Stu_id ;

2. Right Join, Right Join oder Right Outer Join

SQL-Anweisung: Wählen Sie * aus student.Num=score.Stu_id;

3. Vollständiger Outer Join oder Full Outer Join Anweisung:Wählen Sie * aus dem vollständigen Join-Score des Studenten für student.Num=score.Stu_id;

Mit den oben genannten drei Methoden können verschiedene Tabellen zu einer großen Tabelle zusammengefügt werden, und nachfolgende Abfragevorgänge werden einfacher.

Für „select * from student,score;“ versuchen Sie, diese Anweisung nicht zu verwenden, da das Ergebnis zu umständlich wäre.

Cross-Join

Cross-Join, ein Cross-Join ohne eine Where-Klausel, die Abfragebedingungen angibt, erzeugt das kartesische Produkt der beiden Tabellen.

SQL-Anweisung: Wählen Sie * aus Student Cross Join Score;

Tabellenverbindung mit unterschiedlichen Strukturen

Wenn die beiden Tabellen eine Viele-zu-Viele-Beziehung haben, müssen wir eine Zwischentabelle student_score erstellen Zumindest die Primärschlüssel der beiden Tabellen.

SQL-Anweisung: Wählen Sie s.Name,C.Cname aus student_score als sc aus, links beitreten, Student als s auf s.Sno=sc.Sno, links beitreten, Punktzahl als c auf c.Cno=sc.Cno

select C_name,grade from student left join score on student.Num=score.Stu_id where name='李五一';

Der rote Teil ist Die Mitte Eine Tabelle ist eine allgemeine Tabelle, die den gesamten Inhalt von zwei Tabellen sammelt. Der

UNION-Operator wird verwendet, um die Ergebnismengen von zwei oder mehr Auswahlanweisungen zu kombinieren.

Die SELECT-Anweisungen innerhalb von UNION müssen die gleiche Anzahl von Spalten haben, jede Spalte muss auch ähnliche Datentypen haben und die Reihenfolge der Spalten in jeder SELECT-Anweisung muss gleich sein.

select Num from student union select Stu_id from score;

Der Union-Operator wird standardmäßig auf Duplikate überprüft. Wenn doppelte Werte zulässig sind, kann Union All verwendet werden. Bei zwei Tabellen mit derselben Struktur kann Union sie auch in einer Tabelle zusammenführen:

select * from student1 union select *from student2;

Unterabfrage

Manchmal, wenn die für die Abfrage erforderliche Bedingung das Ergebnis einer anderen SELECT-Anweisung ist, wird eine Unterabfrage verwendet. 1. Unterabfrage mit Schlüsselwort IN Die äußere Abfrage wird abgefragt, andernfalls wird die äußere Abfrage nicht abgefragt.

SQL-Anweisung: select * from student where exist(select * from score where C_name='computer');

3. Unterabfrage mit ANY-Schlüsselwort

Verwenden Sie das ANY-Schlüsselwort, solange eines erfüllt ist, wird die Bedingung erfüllt um die äußere Abfrage auszuführen.

SQL-Anweisung: Wählen Sie sname,(date_format(from_days(now())-to_days(birthday)),'%Y')+0) als 'Alter' vom Schüler aus, wobei Geburtstag>ANY(Geburtstag vom Schüler auswählen, wobei bumen= 'Department of Computer Science');

4. Unterabfrage mit dem Schlüsselwort ALL

Die Verwendung des Schlüsselworts ALL muss alle von allen inneren Abfrageanweisungen zurückgegebenen Ergebnisse erfüllen, bevor die äußere Abfrage ausgeführt wird.

SQL-Anweisung: select sname,(date_format (from_days( now())-to_days(birthday)),'%Y')+0) as 'age' from student where birthday>ALL(select birthday from student where bumen='Informatikabteilung');

Verwandtes Lernen Empfohlen:

MySQL-Tutorial

(Video)

Das obige ist der detaillierte Inhalt vonWelche Anweisungen werden in Multi-Table-Join-Abfragen verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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