Heim  >  Artikel  >  Datenbank  >  So führen Sie eine Abfrage mit mehreren Tabellen in MySQL durch

So führen Sie eine Abfrage mit mehreren Tabellen in MySQL durch

青灯夜游
青灯夜游Original
2019-05-14 11:24:5358347Durchsuche

MySQL-Methode für Multi-Table-Abfrage: 1. Abfrage mit SELECT-Klausel; 3. Abfrage mit innerer Verknüpfung; 5. Abfrage mit mehreren Tabellen-Joins;

So führen Sie eine Abfrage mit mehreren Tabellen in MySQL durch

Wie führe ich eine Abfrage mit mehreren Tabellen in MySQL durch? Der folgende Artikel stellt Ihnen einige MySQL-Methoden für die Abfrage mehrerer Tabellen vor. Ich hoffe, er wird Ihnen hilfreich sein.

(Empfohlenes Tutorial: MySQL-Video-Tutorial)

1. SELECT-Klausel für Mehrtabellenabfrage verwenden

SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件

Beispiel :

SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id

Hinweis: Im obigen Code wird die Zuordnung zwischen den beiden Tabellen auf der Grundlage derselben ID-Feldinformationen der beiden Tabellen hergestellt. Sie sollte jedoch in der tatsächlichen Entwicklung nicht auf diese Weise verwendet werden Verwenden Sie am besten Primär- und Fremdschlüsseleinschränkungen, um

zu erreichen. 2. Verwenden Sie Tabellenaliase, um Abfragen mit mehreren Tabellen durchzuführen.

Beispiel:

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065  a,tb_demo065_tel  b WHERE a.id=b.id AND b.id='$_POST[textid]'

In der SQL-Sprache können Sie zwei verwenden. Die Methode besteht darin, einen Alias ​​für die Tabelle anzugeben:

1 Geben Sie ihn über das Schlüsselwort AS an, z. B.

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 AS a,tb_demo065_tel AS b WHERE a.id=b.id

2 . Fügen Sie den Alias ​​der Tabelle direkt nach dem Tabellennamen hinzu, um

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065  a,tb_demo065_tel  b WHERE a.id=b.id

Einige Punkte sollten bei der Verwendung von Tabellenaliasen beachtet werden

● (1 Ein Alias ​​ist normalerweise eine verkürzte Tabelle Name, wird verwendet, um auf bestimmte Spalten in einer Tabelle in einer Verbindung zu verweisen. Wenn in der Tabelle mehrere Spalten mit demselben Namen vorhanden sind, muss der Spaltenname mit dem Tabellennamen oder Tabellenalias qualifiziert werden Tabellenalias ist definiert, der Tabellenname kann nicht verwendet werden

3. Einfache verschachtelte Abfrage (Unterabfrage, innerer Join)

Unterabfrage: Eine Unterabfrage ist eine SELECT-Abfrage, die zurückgibt ein einzelner Wert und wird in SELECT-, INSERT-, UPDATE- und DELETE-Anweisungen oder anderen Abfrageanweisungen verwendet. Beispiel:

SELECT id,name,sex,date FROM tb_demo068 WHERE id in(SELECT id FROM tb_demo068 WHERE id='$_POST[test]')

Innerer Join: Verwendung der Abfrageergebnisse als Abfragebedingung der WHERE-Klausel wird ein innerer Join

SELECT filedlist FROM table1 [INNER] JOIN table2 ON table1.column1 = table2.column1

genannt, wobei filelist die angezeigten Felder INNER ist, die angeben, dass die Verbindungsmethode zwischen Tabellen „innere Verbindung“ ist. table1.column1=table2.column1 wird zur Angabe der Verbindung verwendet Bedingungen zwischen den beiden Tabellen, wie zum Beispiel:

SELECT a.name,a.address,a.date,b.chinese,b.math,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id

4. Komplexe Einbettung Verschachtelte Abfragen

Verschachtelte Abfragen zwischen mehreren Tabellen können durch das Prädikat IN implementiert werden. Das Syntaxformat ist wie folgt:


test_expression[NOT] IN{
 subquery
}

Parameterbeschreibung: test_expression bezieht sich auf den SQL-Ausdruck und die Unterabfrage enthält eine Unterabfrage einer bestimmten Ergebnismenge.

Prinzip der verschachtelten Abfrage mit mehreren Tabellen: Egal wie viele Da Tabellen verschachtelt sind, muss eine gewisse Korrelation zwischen Tabellen bestehen. Diese Korrelation wird durch die WHERE-Klausel hergestellt, um die Abfrage mit mehreren Tabellen zu implementieren

Mithilfe von UNION in SQL-Anweisungen können qualifizierte Dateninformationen in verschiedenen Tabellen in derselben Spalte angezeigt werden. Beispiel:

SELECT * FROM tb_demo074_student UNION SELECT * FROM tb_demo074_fasten
Die folgenden zwei Punkte sollten bei der Verwendung von UNION beachtet werden:
● In Anweisungen, die mit dem UNION-Operator kombiniert werden, muss die Anzahl der Ausdrücke in allen Auswahllisten gleich sein, z. B. Spaltennamen, arithmetische Ausdrücke, Aggregatfunktionen usw.

●In jeder Abfragetabelle ist die Datenstruktur von Die entsprechende Spalte muss identisch sein.


6. Komplexe Inner-Join-Abfrage

Komplexe Inner-Join-Abfrage basiert auf der grundlegenden Inner-Join-Abfrage und fügt einige Abfragebedingungen hinzu, wie zum Beispiel:

SELECT a.name,a.address,a.date,b.chinese,b.math,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id WHERE b.id=(SELECT id FROM  tb_demo065 WHERE tb_demo065.name='$_POST[text]')

Kurz gesagt besteht das Wesentliche bei der Realisierung der Zuordnung zwischen Tabellen darin, dass zwischen den beiden Tabellen gemeinsame Datenelemente oder dieselben Datenelemente vorhanden sind. Die beiden Tabellen werden durch die WHERE-Klausel oder die INNER JOIN ... ON-Anweisung verbunden die Abfrage.

Das obige ist der detaillierte Inhalt vonSo führen Sie eine Abfrage mit mehreren Tabellen in MySQL durch. 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