Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen On-Bedingungen und Where-Bedingungen in SQL

Der Unterschied zwischen On-Bedingungen und Where-Bedingungen in SQL

jacklove
jackloveOriginal
2018-05-22 10:55:232346Durchsuche

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

PHP MySql Paging-Instanz

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!

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
Vorheriger Artikel:PHP-Array-Funktion array_mergeNächster Artikel:PHP-Array-Funktion array_merge