Dieser Artikel veranschaulicht anhand von Beispielen den Unterschied zwischen der Verwendung von On- und Where-Bedingungen für Left Join in MySQL. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: 1. Zunächst bereiten wir zwei Tabellen zum Testen vor. CREATE TABLE `a` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT KOMMENTAR 'ID', `name` varchar(32) STANDARD '' KOMMENTAR 'name', PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB STANDARD-CHARSET=utf8; CREATE TABLE `b` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT KOMMENTAR 'ID', `a_id` int(11) DEFAULT '0' COMMENT 'eine Tabellen-ID', `name` varchar(32) STANDARD '' KOMMENTAR 'name', PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB STANDARD-CHARSET=utf8; Die Daten der beiden Tabellen sind in der Abbildung dargestellt: Führen Sie die folgende Left-Join-Abfrage aus: Wähle * aus einem linken Join b auf a.id = b.a_id; Wir fügen nach „on“ bzw. „where“ Bedingungen hinzu, um zu sehen, ob die Ausführungsergebnisse dieselben sind. Wähle * aus einem linken Join b auf a.id = b.a_id und b.id > 3; Wählen Sie * aus einem linken Join b auf a.id = b.a_id, wobei b.id > 3; In den beiden obigen Anweisungen sind die von uns festgelegten Bedingungen dieselben. In beiden ist b.id > 3, weshalb die angezeigten Ergebnisse unterschiedlich sind. Die Schlüsselwortfolge einer SQL-Anweisung lautet im Allgemeinen von > wobei > gruppieren nach > haben > sortieren nach Wenn sich der Left Join im Von-Bereich befindet, filtert die On-Bedingung zuerst die rechte Tabelle des Left Join und dann die Ergebnisse der Where-Bedingung. Mehrere Left Joins erzeugen eine temporäre Tabelle. Die On-Bedingung dient zum Filtern der Left Join Right-Tabelle und die Where-Bedingung zum Filtern der zuletzt erzeugten temporären Tabelle. Also: Wenn die Bedingung b.id > 3 nach on geschrieben wird, wird zuerst die rechte Tabelle (verwandte Tabelle) durchsucht, um die Zeilen zu erhalten, die die Bedingungen erfüllen. Anschließend wird die Haupttabelle links verknüpft, um alle Zeilen der Haupttabelle zurückzugeben. Die Zeilen, die in der rechten Tabelle nicht übereinstimmen, werden durch null dargestellt. Wenn die Bedingung „b.id > 3“ nach „where“ geschrieben wird, wird die Haupttabelle links mit der rechten Tabelle (zugehörige Tabelle) verbunden, um alle Zeilen zurückzugeben. Anschließend wird die Where-Bedingung verwendet, um die Ergebnisse zu filtern. Hinweis: Die Bedingung nach „on“ bezieht sich auf die Tabelle rechts (die zugehörige Tabelle) und hat keine Auswirkung auf die Haupttabelle. Wähle * aus einem linken Join b auf a.id = b.a_id und a.id > 3; Wir haben für die Haupttabelle nach on die Bedingung a.id > 3 hinzugefügt, aber alle Daten in der Haupttabelle werden weiterhin angezeigt, allerdings wirkt sich dies auf die Anzeige der Tabelle rechts (der zugehörigen Tabelle) aus. Wenn Sie die Haupttabelle filtern möchten, sollten Sie die Bedingung nach „where“ schreiben. Wählen Sie * aus einem linken Join b auf a.id = b.a_id, wobei a.id > 3; Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Was ist nach der Installation von Ubuntu 20.04 zu tun (Anleitung für Anfänger)
>>: Praktische TypeScript-Tipps, die Sie vielleicht nicht kennen
Manche Leute sagen, dass Werbung machen wie ein Me...
Vorwort Wir alle wissen, dass man QR-Codes in off...
Inhaltsverzeichnis 1. Vom Vater zum Sohn 2. Vom S...
Das Plugin wird im Firefox-Browser installiert. D...
Bisher haben wir alle Dateien mit der Endung .msi...
Sehen wir uns zunächst verschiedene Möglichkeiten...
Schritt 1: Den aktuellen Kernel anzeigen rew $ un...
Lassen Sie uns zu Beginn darüber sprechen, was La...
1. Python wird beim Start automatisch ausgeführt ...
In diesem Artikel finden Sie das Installations-Tu...
Inhaltsverzeichnis 1. Eclipse konfiguriert Tomcat...
Ich habe MySQL auf meinem Computer längere Zeit n...
In diesem Artikel wird der spezifische Code zur I...
Inhaltsverzeichnis 1. MySQL-Installation 1.2 Tabe...
MySQL-Partitionierung ist hilfreich bei der Verwa...