1. Verwenden Sie die SELECT-Klausel, um mehrere Tabellen abzufragenSELECT Feldname FROM Tabelle1, Tabelle2 ... WHERE Tabelle1.Feld = Tabelle2.Feld UND andere Abfragebedingungen Wählen Sie a.id,a.name,a.adresse,a.datum,b.math,b.englisch,b.chinesisch aus tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id Hinweis: Im obigen Code sind die beiden Tabellen mit denselben ID-Feldinformationen wie die Bedingung verknüpft. Dies sollte jedoch in der tatsächlichen Entwicklung nicht verwendet werden. Am besten verwenden Sie dazu Primär- und Fremdschlüsseleinschränkungen. 2. Verwenden Sie Tabellenaliase für Abfragen mehrerer Tabellen wie: Wählen Sie a.id, a.name, a.address, b.math, b.english, b.chinese aus tb_demo065 a, tb_demo065_tel b, wobei a.id = b.id und b.id = '$_POST [textid]' In der SQL-Sprache können Sie einen Alias für eine Tabelle auf zwei Arten angeben Wählen Sie a.id, a.name, a.adresse, b.math, b.englisch, b.chinesisch aus tb_demo065 als a, tb_demo065_tel als b, wobei a.id = b.id Die zweite Methode besteht darin, den Tabellenalias direkt nach dem Tabellennamen hinzuzufügen. Wählen Sie a.id,a.name,a.address,b.math,b.english,b.chinese aus tb_demo065 a,tb_demo065_tel b, wobei a.id = b.id Einige Hinweise zur Verwendung von Tabellenaliasen
3. Mehrere Ergebnismengen zusammenführen In der SQL-Sprache können Sie die Abfrageergebnisse mehrerer SELECT-Anweisungen über UNION oder ALL kombinieren. Die Anweisungen zur Verwendung dieser beiden Schlüsselwörter lauten wie folgt: UNION: Mit diesem Schlüsselwort können die Abfrageergebnisse mehrerer SELECT-Anweisungen kombiniert und doppelte Zeilen gelöscht werden. ALL: Mit diesem Schlüsselwort können die Abfrageergebnisse mehrerer SELECT-Anweisungen zusammengeführt werden, doppelte Zeilen werden jedoch nicht gelöscht. Wenn Sie das Schlüsselwort UNION oder ALL verwenden, um mehrere Tabellen für die Ausgabe zu kombinieren, müssen die Abfrageergebnisse dieselbe Struktur aufweisen und die Datentypen müssen kompatibel sein. Darüber hinaus muss bei Verwendung von UNION die Anzahl der Felder in den beiden Tabellen gleich sein, da sonst die SQL-Anweisung mit einem Fehler angezeigt wird. Beispiel: SELECT id,name,pwd FROM tb_demo067 UNION SELECT uid,price,date FROM tb_demo067_tel Vier einfache verschachtelte Abfragen Unterabfrage: Eine Unterabfrage ist eine SELECT-Abfrage, die einen einzelnen Wert zurückgibt und in SELECT-, INSERT-, UPDATE- und DELETE-Anweisungen oder anderen Abfrageanweisungen verschachtelt ist. Unterabfragen können überall dort verwendet werden, wo ein Ausdruck verwendet werden kann. Wählen Sie ID, Name, Geschlecht, Datum aus tb_demo068, wobei ID in (Wählen Sie ID aus tb_demo068, wobei ID = '$_POST[test]') ist. Innerer Join: Die Verwendung des Abfrageergebnisses als Abfragebedingung der WHERE-Klausel wird als innerer Join bezeichnet. 5. Komplexe verschachtelte Abfragen Verschachtelte Abfragen zwischen mehreren Tabellen können mit dem Prädikat IN umgesetzt werden. Die Syntax lautet wie folgt: test_ausdruck[NICHT] IN { Unterabfrage } Parameterbeschreibung: test_expression bezieht sich auf einen SQL-Ausdruck, Unterabfrage enthält eine Unterabfrage eines Ergebnissatzes. Das Prinzip der verschachtelten Abfrage mehrerer Tabellen: Unabhängig davon, wie viele Tabellen verschachtelt sind, muss eine Art Verbindung zwischen den Tabellen bestehen, und diese Verbindung wird durch die WHERE-Klausel hergestellt, um die Abfrage zu implementieren. 6. Anwendung verschachtelter Abfragen in Abfragestatistiken Bei der Implementierung von Abfragen mit mehreren Tabellen können Sie die Prädikate ANY, SOME und ALL gleichzeitig verwenden. Diese Prädikate werden als quantitative Vergleichsprädikate bezeichnet und können in Verbindung mit Vergleichsoperatoren verwendet werden, um zu bestimmen, ob alle zurückgegebenen Werte die Suchbedingungen erfüllen. Die Prädikate SOME und ANY sind existenzielle Prädikate und konzentrieren sich nur darauf, ob die zurückgegebenen Werte die Suchbedingungen erfüllen. Die beiden Prädikate haben dieselbe Bedeutung und können austauschbar verwendet werden. Das Prädikat ALL wird als allgemeines Prädikat bezeichnet und kümmert sich nur darum, ob es Prädikate gibt, die die Suchanforderungen erfüllen. Wählen Sie * aus tb_demo069_people, wobei uid in (wählen Sie deptID aus tb_demo069_dept, wobei deptName = '$_POST [Auswählen]') Wählen Sie a.id,a.name FROM tb_demo067 AS a WHERE id<3)
7. Unterabfragen als abgeleitete Tabellen verwenden Im tatsächlichen Projektentwicklungsprozess wird es häufig verwendet, um aus einer Tabelle mit relativ vollständigen Informationen eine Informationstabelle abzuleiten, die nur wenige Schlüsselfelder enthält. Dieses Ziel kann durch Unterabfragen erreicht werden, wie zum Beispiel SELECT Leute.Name,Leute.Chinesisch,Leute.Mathematik,Leute.Englisch FROM (SELECT Name,Chinesisch,Mathematik,Englisch FROM tb_demo071) AS Leute Hinweis: Unterabfragen sollten den folgenden Regeln folgen: (1) Die durch den Vergleichsoperator eingeführte innere Unterabfrage enthält nur einen Ausdruck oder Spaltennamen. Die in der WHERE-Klausel der äußeren Anweisung genannten Spalten müssen mit den in der inneren Unterabfrage genannten Spalten kompatibel sein. 8. Unterabfragen als Ausdrücke verwendenSELECT (SELECT AVG(Chinesisch)FROM tb_demo071),(SELECT AVG(Englisch)FROM tb_demo071),(SELECT AVG(Mathematik)FROM tb_demo071) FROM tb_demo071 Hinweis: Wenn Sie eine Unterabfrage verwenden, ist es am besten, den Listenelementen einen Alias zuzuweisen, der es Benutzern erleichtert, Tabellenelementen Werte zuzuweisen, wenn sie die Funktion mysql_fetch_array() verwenden, z. B. SELECT (SELECT AVG(Chinesisch) FROM tb_demo071) AS yuwen,(SELECT AVG(Englisch) FROM tb_demo071) AS yingyu,(SELECT AVG(Mathe) FROM tb_demo071) AS shuxue FROM tb_demo071 9. Verwenden Sie Unterabfragen, um Daten zu verknüpfenWählen Sie * aus tb_demo072_student, wobei id = (Wählen Sie id aus tb_demo072_class, wobei className = '$_POST[text]') 10. Gemeinsame Abfrage mehrerer Tabellen Durch die Verwendung von UNION in SQL-Anweisungen können Dateninformationen, die die Bedingungen in verschiedenen Tabellen erfüllen, in derselben Spalte angezeigt werden. Beispiel: SELECT * FROM tb_demo074_student UNION SELECT * FROM tb_demo074_fasten Hinweis: Bei der Verwendung von UNION sollten Sie die folgenden zwei Punkte beachten: 11. Sortieren Sie die kombinierten Ergebnisse Aus Gründen der Kompatibilität mit UNION-Operationen dürfen nicht alle SELECT-Anweisungen eine ORDER BY-Anweisung enthalten. Es gibt jedoch eine Ausnahme: In der letzten SELECT-Anweisung muss eine ORDER BY-Klausel eingefügt werden, um die endgültige sortierte Ausgabe der Ergebnisse zu erreichen. Beispiel: SELECT * FROM tb_demo074_student UNION SELECT * FROM tb_demo074_fasten ORDER BY id Die Bedingungen für die Verwendung von UNION sind relativ streng. Daher müssen Sie bei der Verwendung dieser Anweisung darauf achten, ob die Anzahl der Elemente und die Feldtypen der beiden Tabellen identisch sind. 12 Bedingte Join-AnweisungenSELECT * FROM tb_demo076_BEIJING GROUP BY name HAVING name='Post- und Telekommunikationspresse' OR name='Maschinenindustriepresse' UNION SELECT * FROM tb_demo076_BEIJING GROUP BY name HAVING name <>'Post- und Telekommunikationspresse' AND name <>'Maschinenindustrie-Nachdruckpresse' ORDER BY id Die obige Anweisung verwendet die GROUP BY-Anweisung und die HAVING-Anweisung, um eine bedingte gemeinsame Abfrage zu implementieren. Ziel ist es, sicherzustellen, dass „People's Posts and Telecommunications Press“ und „Machinery Industry Press“ immer ganz oben auf der Liste stehen, und dann andere Verlage zu exportieren. 13. Einfache Inner-Join-AbfrageSELECT Dateiliste FROM Tabelle1 [INNER] JOIN Tabelle2 ON Tabelle1.Spalte1 = Tabelle2.Spalte1 Unter diesen ist „filelist“ das anzuzeigende Feld, „INNER“ bedeutet, dass die Verbindung zwischen den Tabellen eine innere Verbindung ist, und „table1.column1=table2.column1“ wird verwendet, um den Verbindungszustand zwischen den beiden Tabellen anzuzeigen, beispielsweise: Wählen Sie a.name, a.adresse, a.datum, b.chinesisch, b.mathematik, b.englisch aus tb_demo065 als INNER JOIN tb_demo065_tel als b auf a.id = b.id 14 Komplexe Inner Join-Abfrage Komplexe Inner-Join-Abfragen basieren auf grundlegenden Inner-Join-Abfragen und fügen einige Abfragebedingungen hinzu, beispielsweise: Wählen Sie a.name, a.adresse, a.datum, b.chinesisch, b.mathematik, b.englisch aus tb_demo065 als INNER JOIN tb_demo065_tel als b auf a.id=b.id, wobei b.id=(wählen Sie id aus tb_demo065, wobei tb_demo065.name='$_POST[text]') Kurz gesagt besteht das Wesentliche bei der Realisierung der Zuordnung zwischen Tabellen darin, dass zwischen den beiden Tabellen gemeinsame oder identische Datenelemente vorhanden sind. Die beiden Tabellen werden über die WHERE-Klausel oder die INNER JOIN ... ON-Anweisung verbunden, um die Abfrage zu realisieren. 15. Verwenden Sie äußere Verknüpfungen, um gemeinsame Abfragen für mehrere Tabellen zu implementieren (1) LEFT OUTER JOIN bedeutet, dass die Tabellen über einen Left Join miteinander verbunden sind, der auch als LEFT JOIN abgekürzt werden kann. Da er auf der linken Tabelle basiert, spricht man auch von einem Left Join. Dabei werden alle Informationen der linken Tabelle ausgegeben, während in der rechten Tabelle nur Informationen ausgegeben werden, die die Bedingungen erfüllen. Für Informationen, die die Bedingungen nicht erfüllen, wird NULL zurückgegeben. (2) RIGHT OUTER JOIN bedeutet, dass die Tabellen durch einen Right Join miteinander verbunden sind, der auch als RIGHT JOIN abgekürzt werden kann. Er basiert auf der Tabelle auf der rechten Seite und wird daher als Right Join bezeichnet. Alle Informationen in der rechten Tabelle werden ausgegeben, während in der linken Tabelle nur die Informationen ausgegeben werden, die die Bedingungen erfüllen. Für Informationen, die die Bedingungen nicht erfüllen, wird NULL zurückgegeben. 16. Verwenden Sie die Schlüsselwörter IN oder NOTIN, um den Bereich einzuschränkenBeispiel: SELECT * FROM tb_demo083 WHERE Code IN (SELECT Code FROM tb_demo083 WHERE Code ZWISCHEN '$_POST[text1]' UND '$_POST[text2]') Mit IN kann eine Abfrage innerhalb eines Bereichs angegeben werden. Wenn Sie eine Abfrage außerhalb eines bestimmten Bereichs durchführen müssen, können Sie stattdessen NOT IN verwenden. 17. Korrelierte Unterabfragen eingeführt durch INBeispiel: SELECT * FROM tb_demo083 WHERE Code IN (SELECT Code FROM tb_demo083 WHERE Code = '$_POST[Text]') 18. Verwenden der HAVING-Anweisung zum Filtern gruppierter Daten Die HAVING-Klausel wird verwendet, um Suchbedingungen für Gruppen oder Aggregate anzugeben. HAVING wird normalerweise mit der GROUP BY-Klausel verwendet. Wenn die SQL-Anweisung keine GROUP BY-Klausel enthält, verhält sich HAVING genauso wie die WHERE-Klausel. Beispiel: SELECT name,math FROM tb_demo083 GROUP BY id HAVING math > '95' Dies ist das Ende dieses Artikels über die spezifischen Beispiele für MySQL-Mehrtabellenabfragen. Weitere relevante Inhalte zu MySQL-Mehrtabellenabfragen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: JavaScript-Programmierung durch Lernen der Positionierung des Schwerpunktalgorithmus in Matlab
Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...
Code kopieren Der Code lautet wie folgt: <html...
Die Trennung von Lese- und Schreibzugriffen in Da...
Inhaltsverzeichnis 1 Was ist eine Container-Cloud...
Inhaltsverzeichnis 1. Lernziele 1.1. Beherrschen ...
Inhaltsverzeichnis Überprüfung der responsiven Pr...
Vorwort Während des Schreibens des Codes werden w...
Inhaltsverzeichnis Überblick 1. Erstellen eines R...
Was soll ich tun, wenn Linux nicht alle Befehle u...
Finden Sie das Problem Wenn wir den Inhalt in ein...
1. Übersicht über Dateiberechtigungen und Eigentu...
Baidu definiert zwei Arten von toten Linkformaten:...
1. HTML-Übersicht htyper Textauszeichnungssprache...
Rezension der vorherigen Folge: Gestern haben wir...
Früher hatte fast jede Website eine Sitemap-Seite...