Heim  >  Artikel  >  Datenbank  >  Der Unterschied zwischen Join und Where in SQL

Der Unterschied zwischen Join und Where in SQL

(*-*)浩
(*-*)浩Original
2019-05-10 16:58:387298Durchsuche

Die Funktion des Schlüsselworts „join“ besteht darin, mehrere Tabellen gemäß bestimmten Bedingungen zu verbinden, sodass Daten aus mehreren Tabellen abgerufen werden können.

Empfohlener Kurs: MySQL-Tutorial.

Der Unterschied zwischen Join und Where in SQL

Nach dem Beitritt können Sie den Zustand und den Zustand verfolgen. Hier spreche ich hauptsächlich über den Unterschied zwischen den beiden

Erstellen Sie zwei einfache Tabellen zum Testen und fügen Sie Daten hinzu, wie unten gezeigt, eine Tabelle heißt id_name, die andere heißt id_age

Sehen Sie sich zunächst die Ergebnisse an, ohne Bedingungen hinzuzufügen - t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id

get

1 Nehmen Sie hier den linken Join. Führen Sie zuerst where aus und fügen Sie die Bedingung hinzu - when t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id where t2.age ='22'

Das Ergebnis ist wie folgt

Die Where-Bedingung kann erhalten werden durch Filtern der Bedingungen nach Abschluss der Left-Join-Operation

2. Bei Ausführung mit Plus-Bedingung - t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id and t2.age ='22'

Die Ergebnisse sind wie folgt

Die Ein-Bedingung kann durch Filterung der Bedingungen vor dem Left-Join und anschließende Verknüpfung der beiden Tabellen erhalten werden

Hier ist der Left-Join aufgrund seiner Natur beispielsweise für den Inner-Join Die durch die beiden Bedingungen erzielten Ergebnisse sind die gleichen, aber der interne Prozess unterscheidet sich immer noch.

on arbeitet früher als wo, fahren Sie zunächst gemäß der on-Bedingung fort. Generieren Sie für Multi-Table-Join-Vorgänge eine temporäre Tabelle und nach „Wo“ filtern

Welches „on“ und „wo“ ist effizienter?

Wenn es sich um einen Inner Join handelt, führen „put on“ und „put Where“ zum gleichen Ergebnis, aber das ist der Fall Kann ich nicht sagen, welches effizienter und schneller ist? Wenn es einen äußeren Join gibt (links oder rechts), wird es einen Unterschied geben, da „on“ zuerst wirksam wird und einige Daten im Voraus gefiltert wurden, während „wo“ später wirksam wird.

Zusammenfassend lässt sich sagen, dass es sich effizienter anfühlt, es einzufügen, da es vor „wo“ ausgeführt wird.
Erstes kartesisches Produkt, dann beim Filtern weiter nach unten gehen, wenn der Join vorhanden ist ist ein linker Join, fügen Sie die Daten in der linken Haupttabelle wieder hinzu, gefiltert nach „on“; führen Sie dann die Filterung in „wo“ durch. „on“ ist nicht die endgültige Filterung, da der linke Join sie möglicherweise später wieder hinzufügt ist die endgültige Filterung.

Nur ​​bei der Verwendung von „Outer Join“ (links, rechts) gibt es diesen Unterschied zwischen „on“ und „where“. wobei es keine weiteren Schritte dazwischen gibt.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Join und Where 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:Was macht ein MySQL-Index?Nächster Artikel:Was macht ein MySQL-Index?