Effizienter Weg, um wählen Sie alle Werte von einer Spalte nicht in einer anderen Spalte

Brauche ich, um alle Werte aus colA sind nicht in colB aus mytable. Ich bin mit:

SELECT DISTINCT(colA) FROM mytable WHERE colA NOT IN (SELECT colB FROM mytable)

Es funktioniert jedoch die Abfrage der Einnahme zu lange, um abzuschließen.

Ist es ein effizienter Weg, dies zu tun?

  • NOT IN verlangsamt, wie die Größe wächst, und es gibt oft ein limit, wie viele Zeilen können in der NOT IN - Klausel. Außerhalb der kleinen Ergebnis-sets die ich gefunden habe, ist es besser, andere Mittel, um den Unterschied zwischen zwei Ergebnismengen.
  • Beim sprechen über Leistung, müssen Sie den Namen Ihres RDBMS oder bekommen suboptimale Antworten.
InformationsquelleAutor Flash | 2012-01-05
Schreibe einen Kommentar