Heim >Backend-Entwicklung >PHP-Tutorial >Der Unterschied zwischen On-Bedingungen und Where-Bedingungen in SQL
Beim Lernen von Datenbanken stoßen wir oft auf On und Where. Heute werde ich über den Unterschied zwischen On und Where sprechen.
Wenn die Datenbank Datensätze zurückgibt, indem sie zwei oder mehr Tabellen verbindet, generiert sie eine temporäre Zwischentabelle und gibt diese temporäre Tabelle dann an den Benutzer zurück.
Bei Verwendung von Left Join ist der Unterschied zwischen On- und Where-Bedingungen wie folgt:
1. Die On-Bedingung ist eine Bedingung, die beim Generieren einer temporären Tabelle verwendet wird in on wahr ist oder nicht, werden die Datensätze in der Tabelle links zurückgegeben.
2. Die Where-Bedingung ist die Bedingung zum Filtern der temporären Tabelle, nachdem die temporäre Tabelle generiert wurde. Zu diesem Zeitpunkt hat der linke Join keine Bedeutung (die Datensätze der linken Tabelle müssen zurückgegeben werden). Wenn die Bedingungen nicht erfüllt sind, werden alle herausgefiltert.
Angenommen, es gibt zwei Tabellen:
Tabelle 1: Tab1
ID-Größe1 102 203 30
Tabelle 2: Tab2
Größenname10 AAA20 BBB20 CCC
Zwei SQLs:
1、select * from tab1 left join tab2 on tab1.size = tab2.size where tab2.name='AAA'2、 select * from tab1 left join tab2 on tab1.size = tab2.size and tab2.name='AAA'
Der Prozess des ersten SQL:
1. Zwischentabelle
auf Bedingung:
tab1.size = tab2.size tab1.id tab1.size tab2.size tab2.name1 10 10 AAA2 20 20 BBB2 20 20 CCC3 30 (null) (null)
2. Dann filtern Sie die Zwischentabelle
wobei Bedingung:
tab2.name='AAA' tab1.id tab1.size tab2.size tab2.name1 10 10 AAA
Der zweite SQL-Prozess:
Zwischentabelle
on Bedingung:
tab1.size = tab2.size und tab2.name='AAA' (wenn die Bedingung nicht wahr ist, werden auch die Datensätze in der linken Tabelle zurückgegeben)
tab1 .id tab1.size tab2.size tab2.name1 10 10 AAA2 20 (null) (null)3 30 (null) (null)
Tatsächlich der Hauptgrund für das oben Genannte Das Ergebnis ist Left Join, Right Join, die Besonderheit des Full Joins.
Unabhängig davon, ob die Bedingung für „on“ wahr ist oder nicht, werden Datensätze in der linken oder rechten Tabelle zurückgegeben, und „full“ weist die Vereinigung der Merkmale von links und rechts auf.
Das innere Jion verfügt nicht über diese besondere Funktion, daher werden die Bedingungen in „on“ und „wo“ platziert und die zurückgegebene Ergebnismenge ist dieselbe.
In diesem Artikel wird der Unterschied zwischen „wo“ und „on“ erläutert. Weitere Informationen finden Sie auf der chinesischen PHP-Website.
Verwandte Werbepresse:
Über die Methode der PHP-Komprimierung von CSS-Code
PHP empfängt JSON und fügt die empfangenen Daten ein Datenbank
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen On-Bedingungen und Where-Bedingungen in SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!