Was ist der Unterschied zwischen dem EXISTS
y IN
Klausel in SQL?
Wann sollten wir die EXISTS
und wann sollten wir die IN
?
Was ist der Unterschied zwischen dem EXISTS
y IN
Klausel in SQL?
Wann sollten wir die EXISTS
und wann sollten wir die IN
?
IN unterstützt nur Gleichheitsbeziehungen (oder Ungleichheit, wenn ihr ein NO ).
Es ist ein Synonym für \= beliebig / \=einige z.B.
select *
from t1
where x in (select x from t2)
;
EXISTS unterstützt verschiedene Arten von Beziehungen, die nicht mit IN z.B..
select *
from t1
where exists (select null
from t2
where t2.x=t1.x
and t2.y>t1.y
and t2.z like '' || t1.z || ''
)
;
Die angeblichen Leistungs- und technischen Unterschiede zwischen EXISTS y IN können aus den Implementierungen/Einschränkungen/Fehlern eines bestimmten Anbieters resultieren, aber oft sind sie nichts anderes als Mythen, die aus mangelndem Verständnis der Datenbankinterna entstanden sind.
Die Definition der Tabellen, die Genauigkeit der Statistiken, die Datenbankkonfiguration und die Version des Optimierers wirken sich alle auf den Ausführungsplan und damit auf die Leistungskennzahlen aus.
En Exists
Schlüsselwort wahr oder falsch auswertet, aber IN
Schlüsselwort alle Werte in der entsprechenden Spalte der Unterabfrage vergleichen. Eine weitere Select 1
kann verwendet werden mit Exists
Befehl. Beispiel:
SELECT * FROM Temp1 where exists(select 1 from Temp2 where conditions...)
Pero IN
weniger effizient ist, so dass Exists
schneller.
Glaube ich,
EXISTS
ist, wenn Sie die Ergebnisse einer Abfrage mit einer anderen Unterabfrage abgleichen müssen. Die Ergebnisse der Abfrage Nr. 1 müssen abgerufen werden, wenn die Ergebnisse der Unterabfrage übereinstimmen. Eine Art von Join.. Z.B. select customers table#1 who have placed orders table#2 too
IN soll abfragen, ob der Wert einer bestimmten Spalte IN
eine Liste (1,2,3,4,5) Z.B. Wählen Sie Kunden aus, die in den folgenden Postleitzahlen liegen, d.h. die Werte der Postleitzahl liegen in der Liste (....).
Wann sollte man das eine dem anderen vorziehen... wenn man das Gefühl hat, dass es sich angemessener liest (die Absicht besser vermittelt).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.