1. Was ist eine Unterabfrage?Liste aller Kunden, die den Artikel TNT2 bestellt haben: wählen Sie Kunden-ID von Bestellungen wobei Bestellnummer IN (SELECT Bestellnummer von Bestellartikeln wobei prod_id = "TNT2" ) Formatierte Es gibt keine Begrenzung für die Anzahl der Unterabfragen, die verschachtelt werden können. In der Praxis können jedoch aufgrund von Leistungseinschränkungen nicht zu viele Unterabfragen verschachtelt werden. Notiz:
Unterabfragen können nicht nur in Angenommen, Sie müssen die Gesamtzahl der Bestellungen für jeden Kunden in der Wählen Sie Kundenname, Kundenstatus, (SELECT COUNT(*) FROM Bestellungen WHERE Bestellungen.Kunden-ID = Kunden.Kunden-ID) als Bestellungen von Kunden ORDER BY Kundenname Der
Hier ist die Verbindung: SELECT Verkäufername, Produktname, Produktpreis VON Anbietern, Produkten WO anbieter.vend_id = produkte.vend_id ORDER BY Verkaufsname, Produktname Notiz:
Dies ist die Funktion der Where-Anweisung zum Verknüpfen:
Notiz:
Die folgende SELECT-Anweisung gibt genau dieselben Daten zurück wie das vorherige Beispiel: SELECT Verkäufername, Produktname, Produktpreis VON Anbietern INNER JOIN Produkte auf Anbieter.vend_id = products.vend_id ORDER BY Händlername, Produktname Welche Syntax soll verwendet werden? Überlegungen zur Leistung: Experimentieren Sie viel. Wie Sie sehen, gibt es normalerweise mehr als eine Möglichkeit, einen bestimmten SQL-Vorgang auszuführen. Es gibt selten absolut richtige oder falsche Wege, Dinge zu tun. Die Leistung kann durch die Art des Vorgangs, die Datenmenge in der Tabelle, das Vorhandensein von Indizes oder Schlüsseln und andere Bedingungen beeinträchtigt werden. Daher ist es notwendig, mit verschiedenen Auswahlmechanismen zu experimentieren, um denjenigen zu finden, der für eine bestimmte Situation am besten geeignet ist. Wir können auch mehrere Tabellenverknüpfungen verwenden, aber dabei tritt ein Problem auf: Da der Tabellenname an mehreren Stellen verwendet wird und daher sehr lang ist, können Sie den Tabellenalias verwenden. wie: Nachfolgend werden einige spezielle Verbindungen vorgestellt. 2. Selbst beitreten Angenommen, Sie stellen fest, dass ein Artikel (mit der So können Sie dieses Problem lösen: Sie könnten eine Unterabfrage wie diese verwenden: Wählen Sie Produkt-ID, Produktname aus. von Produkten wobei vend_id = (SELECT vend_id aus products WHERE prod_id ='DTNTR') Es können auch Self-Joins verwendet werden. Wählen Sie t1.prod_id,t2.prod_name aus Produkten t1, Produkten t2 wobei t1.vend_id = t2.vend_id und t1.prod_id='DTNTR' Verwenden von Self-Joins anstelle von Unterabfragen Self-Joins werden häufig als äußere Anweisungen verwendet, um Unterabfragen zu ersetzen, die beim Abrufen von Daten aus derselben Tabelle verwendet werden. Obwohl das Endergebnis dasselbe ist, kann ein Join manchmal viel schneller verarbeitet werden als eine Unterabfrage. Sie sollten beide Ansätze ausprobieren, um festzustellen, welcher besser funktioniert. 3. Natürlicher JoinWenn Sie Tabellen verknüpfen, sollte es mindestens eine Spalte geben, die in mehr als einer Tabelle vorkommt (die verknüpfte Spalte). Ein Standard-Join (der im vorherigen Kapitel beschriebene Inner Join) gibt alle Daten zurück, auch wenn dieselben Spalten mehrfach vorkommen. Durch den natürlichen Join werden Mehrfachvorkommen eliminiert, so dass jede Spalte nur einmal zurückgegeben wird. Wie kann diese Arbeit abgeschlossen werden? Die Antwort ist: Nicht das System erledigt die Arbeit, sondern Sie selbst. Bei einem natürlichen Join wählen Sie nur eindeutige Spalten aus. Dies geschieht normalerweise durch die Verwendung eines Platzhalters ( 4. Externe VerbindungenViele Verknüpfungen verknüpfen Zeilen einer Tabelle mit Zeilen einer anderen Tabelle. Manchmal müssen Sie jedoch Zeilen einschließen, die keine zugehörigen Zeilen haben. Beispielsweise möchten Sie einen Join möglicherweise für Folgendes verwenden: Beispiel: Zählen Sie, wie viele Bestellungen jeder Kunde aufgegeben hat, einschließlich derjenigen, die noch keine Bestellung aufgegeben haben; SELECT Kunden.Kunden-ID,Bestellnummer von Kunden LEFT OUTER JOIN Bestellungen auf Kunden.cust_id = orders.cust_id Diese Verwenden eines Join mit einer Aggregatfunktion: So rufen Sie alle Kunden und die Anzahl der von jedem Kunden aufgegebenen Bestellungen ab: Wählen Sie Kunden.Kunden-ID, ANZAHL(Bestellnummer) als Nummer aus. von Kunden LEFT OUTER JOIN Bestellungen auf Kunden.cust_id = orders.cust_id GRUPPE NACH Kunden-ID
Dies ist das Ende dieses Artikels über MySQL-Unterabfragen und Join-Tabellen. Weitere relevante MySQL-Unterabfragen und Join-Tabellen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: So implementieren Sie die Größenanpassung mobiler Webseiten
>>: So stellen Sie versehentlich von rm gelöschte Dateien in einer Linux-Umgebung wieder her
Der Installationsprozess entfällt (ich habe es di...
Ich verwende hier das Ubuntu 16.04-System. Instal...
Werfen wir einen Blick auf die Zabbix-Überwachung...
Beim Herunterfahren des MySQL-Servers können, abh...
Verwendung: Datum [Optionen]... [+Format] oder: D...
In tatsächlichen Projekten gibt es Beziehungen zw...
Inhaltsverzeichnis Vuex-Persistenz Zusammenfassen...
Am Samstag war der Redis-Server auf dem Produktio...
Inhaltsverzeichnis Methode 1: Der einfachste Weg,...
In diesem Artikel wird der spezifische Code von j...
Vorwort Tomcat ist ein hervorragender Java-Contai...
In diesem Artikelbeispiel wird der spezifische HT...
Timer-Effekte: <div> <font id='timeC...
Docker-Lernen https://www.cnblogs.com/poloyy/p/15...
Dies ist die Stilempfehlung der W3C-Organisation f...