<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>SQL: not exists vs. not in</title>
    <link>http://forum.geizhals.at/feed.jsp?id=578428</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(2): SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4879508.html#4879508</link>
      <description>&lt;blockquote&gt;NOT IN in verbindung mit sub-queries ist in den meisten fällen ein performance-killer.&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;jo, das hab ich auch schon mitbekommen &lt;img src="schief.gif" width="16" height="19" align="absmiddle" alt=":-/"/&gt;&lt;br/&gt;</description>
      <pubDate>Thu, 26 Jun 2008 10:23:27 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4879508.html#4879508</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2008-06-26T10:23:27Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4879068.html#4879068</link>
      <description>NOT IN in verbindung mit sub-queries ist in den meisten fällen ein performance-killer.&lt;br&gt;&lt;br&gt;alternativ (falls die db es unterstützt) kannst du auch das versuchen:&lt;br&gt;&lt;br&gt;SELECT * FROM table&lt;br&gt;MINUS&lt;br&gt;SELECT * FROM table WHERE aktiv=0;&lt;br&gt;&lt;br&gt;(was hier zwar sinnlos ist, weil da könnte man gleich &lt;br&gt;SELECT * FROM table WHERE aktiv &lt;&gt; 0 &lt;br&gt;verwenden ...)&lt;br&gt;&lt;br&gt;&lt;img src="birndl.gif" width="16" height="26" align="absmiddle" alt="!&amp;#58;-&amp;#41;"/&gt;&lt;br/&gt;</description>
      <pubDate>Thu, 26 Jun 2008 07:37:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4879068.html#4879068</guid>
      <dc:creator>jowahl</dc:creator>
      <dc:date>2008-06-26T07:37:02Z</dc:date>
    </item>
    <item>
      <title>Re(8): SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4878927.html#4878927</link>
      <description>das klingt verständlich, danke!&lt;br/&gt;</description>
      <pubDate>Thu, 26 Jun 2008 05:35:26 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4878927.html#4878927</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2008-06-26T05:35:26Z</dc:date>
    </item>
    <item>
      <title>Re(6): SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877830.html#4877830</link>
      <description>Genau umgekehrt...&lt;br&gt;&lt;br&gt;Sowohl Oracle als auch PostgreSQL reagieren empfindlich schlecht auf ein NOT IN.&lt;br&gt;&lt;br&gt;Begründung:&lt;br&gt;Bei einem NOT IN wird die äußere Query durchgeführt - und in einer "inner Loop" jedesmal das Statement mit "NOT IN" durchgeführt.&lt;br&gt;Wenn die Äußere Loop über Mio Datensätze geht, ist das schweineteuer.&lt;br&gt;&lt;br&gt;Beim "NOT EXISTS" hingegen werden beide Queries mal abgesetzt - und die Ergebnisse gejoint. Das bedeutet, daß die innere query nur 1x durchgeführt wird - und nicht _ANZAHL_ÄUßERE_LOOP_x&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 18:43:14 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877830.html#4877830</guid>
      <dc:creator>kombipaket</dc:creator>
      <dc:date>2008-06-25T18:43:14Z</dc:date>
    </item>
    <item>
      <title>Re(6): SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877814.html#4877814</link>
      <description>in meinen Fall wäre das auch gar nicht möglich (uniqueid-Spalte oder von mir aus können wir das Beispiel mit auto-incremnt machen) ... ich möcht einfach nur wissen, ob es einen Unterschied macht, in einem T-SQL-Statement not exists anstatt not in zu benutzen&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 18:33:25 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877814.html#4877814</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2008-06-25T18:33:25Z</dc:date>
    </item>
    <item>
      <title>Re(4): SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877796.html#4877796</link>
      <description>ja, aber für die Hauptabfrage an sich macht das ja keinen Unterschied, denn das Ergebnis wäre ja das gleiche!&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 18:22:11 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877796.html#4877796</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2008-06-25T18:22:11Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877791.html#4877791</link>
      <description>In deinen Beispielen - mit "NOT IN" darf das Subquery nur eine Spalte zurückgeben, mit NOT EXISTS gibt dein Subquery mehrere (*) Spalten zurück. Evtl. ist das der Unterschied?&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 18:18:44 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877791.html#4877791</guid>
      <dc:creator>Dr. Watson</dc:creator>
      <dc:date>2008-06-25T18:18:44Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877746.html#4877746</link>
      <description>na mal angenommen, ich hab folgende Queries&lt;br&gt;&lt;br&gt;select * from table where uniqueid not in (select uniqueid from table where aktiv=0)&lt;br&gt;&lt;br&gt;oder&lt;br&gt;&lt;br&gt;select * from table where not exists (select * from table where aktiv=0)&lt;br&gt;&lt;br&gt;beide Queries würden mir ja nur die aktiv=1 Datensätze zurück liefern - also wo besteht jetzt genau der Unterschied, wenn man die Abfragen nicht innerhalb eines Programmes verwenden möchte?&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 17:44:21 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877746.html#4877746</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2008-06-25T17:44:21Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877738.html#4877738</link>
      <description>Du kannst dir ja mal die Query-Trees anschauen - es werden wohl i.d.R. unterschiedliche Indexes/join-Arten verwendet usw.&lt;br&gt;&lt;br&gt;Ein wesentlicher Unterschied ist, daß z.B.&lt;br&gt;&lt;br&gt;... 5 not in (1,2,3,4,null) ...&lt;br&gt;&lt;br&gt;= null ist und daher wie false funktioniert, also wohl nicht das Erwartet liefert.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 17:40:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877738.html#4877738</guid>
      <dc:creator>mjy@geizhals.at</dc:creator>
      <dc:date>2008-06-25T17:40:02Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877740.html#4877740</link>
      <description>Du kannst dir ja mal die Query-Trees anschauen - es werden wohl i.d.R. unterschiedliche Indexes/join-Arten verwendet usw.&lt;br&gt;&lt;br&gt;Ein wesentlicher Unterschied ist, daß z.B.&lt;br&gt;&lt;br&gt;... 5 not in (1,2,3,4,null) ...&lt;br&gt;&lt;br&gt;= null ist und daher wie false funktioniert, also wohl nicht das Erwartete liefert.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 17:40:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877740.html#4877740</guid>
      <dc:creator>mjy@geizhals.at</dc:creator>
      <dc:date>2008-06-25T17:40:02Z</dc:date>
    </item>
    <item>
      <title>SQL: not exists vs. not in</title>
      <link>http://forum.geizhals.at/t578428,4877707.html#4877707</link>
      <description>also wann verwendet man not exists und wann not in? in Prinzip kann man ja die gleiche Sub-Query schreiben und auf diese kann man dann entweder mit not exists oder mit not in drauf zugreifen ... was ist sinnvoller? und warum?&lt;br&gt;&lt;br&gt;also meinem Verständnis nach verwendet man not exists, wenn man das Ergebnis in eine If-Abfrage einbauen möchte ... aber bei stinknormalen Queries ohne großartigen Abfragen würde ja not in auch reichen oder?&lt;br/&gt;</description>
      <pubDate>Wed, 25 Jun 2008 17:21:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578428,4877707.html#4877707</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2008-06-25T17:21:53Z</dc:date>
    </item>
  </channel>
</rss>
