<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
    <link>http://forum.geizhals.at/feed.jsp?id=650700</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(4): SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567988.html#5567988</link>
      <description>Wobei der eigentliche Vorteil darin liegt, dass man oft nur wissen will, ob Wert X in Ergebnis von Subquery Y drin ist - da ist ein EXISTS um einiges schneller, als ein IN, weil beim EXISTS sofort abgebrochen wird, wenn true.&lt;br/&gt;</description>
      <pubDate>Sun, 12 Jul 2009 08:08:08 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567988.html#5567988</guid>
      <dc:creator>Dr. Watson</dc:creator>
      <dc:date>2009-07-12T08:08:08Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567782.html#5567782</link>
      <description>ja - du kannst sie immer umformen... Und JA, du sollst es tun.&lt;br&gt;&lt;br&gt;Üblicherweise sieht es so aus:&lt;br&gt;Wenn Du eine Query machst a la&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;Select a from b where c in (select d from e)&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;dann macht er für _jede_ resultrow aus "Select a from b" eine neue Subquery.&lt;br&gt;Kurzum: Das ist schweineteuer.&lt;br&gt;&lt;br&gt;Wenn du das aber in eine EXISTS-Query umwandelst, baut er mal 2 Antworttabellen auf (die äußere und die innere) und joint die dann (i.d.R. über Indizes) - das ist also pfeilschnell. &lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 20:35:55 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567782.html#5567782</guid>
      <dc:creator>kombipaket</dc:creator>
      <dc:date>2009-07-11T20:35:55Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567788.html#5567788</link>
      <description>ja - du kannst sie immer umformen... Und JA, du sollst es tun.&lt;br&gt;&lt;br&gt;Üblicherweise sieht es so aus:&lt;br&gt;Wenn Du eine Query machst a la&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;Select a from b where c in (select d from e)&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;dann macht er für _jede_ resultrow aus "Select a from b" eine neue Subquery.&lt;br&gt;Kurzum: Das ist schweineteuer.&lt;br&gt;&lt;br&gt;Wenn du das aber in eine EXISTS-Query umwandelst, baut er mal 2 Antworttabellen auf (die äußere und die innere) und joint die dann (i.d.R. über Indizes) - das ist also pfeilschnell. &lt;br&gt;&lt;br&gt;Ergänzung:&lt;br&gt;Auch ein "MINUS" ist oft eine Überlegung wert..&lt;br&gt;A la &lt;br&gt;SELECT A FROM B WHERE C MINUS SELECT A FROM B WHERE D IN (1,2,3)&lt;br&gt;statt&lt;br&gt;SELECT A FROM B WHERE C AND D NOT IN (1,2,3)&lt;br&gt;&lt;br&gt;Ersteres hat bei mehr Datenbanken Indexzugriffsmöglichkeiten...&lt;br&gt;Ist wie bei Perl: There is more than one way to do it &lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 20:35:55 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567788.html#5567788</guid>
      <dc:creator>kombipaket</dc:creator>
      <dc:date>2009-07-11T20:35:55Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567666.html#5567666</link>
      <description>genau ... exists / not exists liefert dir nur true oder false zurück, mit dem in-Befehl kannst du in deinem Sub-Select einfach nur Spalten abrufen oder eben auch diverse Aggregatfunktionen etc. ausführen!&lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 17:59:47 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567666.html#5567666</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2009-07-11T17:59:47Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567663.html#5567663</link>
      <description>Ah, okay.&lt;br&gt;Bei EXISTS, NOT EXISTS krieg ich ein "ja/nein", bei IN krieg ich eine Tabelle, die ich speichern und weiterverarbeiten kann?&lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 17:57:33 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567663.html#5567663</guid>
      <dc:creator>Bueromensch</dc:creator>
      <dc:date>2009-07-11T17:57:33Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567659.html#5567659</link>
      <description>naja mit exists überprüft du ja nur eine Bedingung, bei in kannst du ja im subselect eine Wertmenge abfragen, mit der du im Query weiterarbeiten kannst&lt;br&gt;&lt;br&gt;zB&lt;br&gt;&lt;br&gt;select * from auftrag where kundenid in (select kundenid from kunden where bundesland='wien') ... alle Aufträge von wiener Kunden&lt;br&gt;&lt;br&gt;oder eine Abfrage mit exists&lt;br&gt;&lt;br&gt;select * from auftrag a where not exists (select 1 from verrechnung where auftragid=a.auftragid) ... um zB auszulesen, ob der Auftrag schon verrechnet wurde&lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 17:50:50 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567659.html#5567659</guid>
      <dc:creator>-Transformer2K-</dc:creator>
      <dc:date>2009-07-11T17:50:50Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567680.html#5567680</link>
      <description>Nein.&lt;br&gt;&lt;br&gt;&lt;a href="http://dev.mysql.com/doc/refman/5.1/de/any-in-some-subqueries.html" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;dev.mysql.com/&lt;wbr/&gt;doc/&lt;wbr/&gt;refman/&lt;wbr/&gt;5.1/&lt;wbr/&gt;de/&lt;wbr/&gt;any-in-some-subqueries.html&lt;/a&gt; &lt;br&gt;&lt;a href="http://dev.mysql.com/doc/refman/5.1/de/exists-and-not-exists-subqueries.html" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;dev.mysql.com/&lt;wbr/&gt;doc/&lt;wbr/&gt;refman/&lt;wbr/&gt;5.1/&lt;wbr/&gt;de/&lt;wbr/&gt;exists-and-not-exists-subqueries.html&lt;/a&gt; &lt;br&gt;&lt;br&gt;Wie willst du bei folgender Abfrage übrigens IN() mit EXISTS() ersetzen?&lt;br&gt;&lt;br&gt;&lt;pre&gt;SELECT * FROM auto WHERE farbe IN ( 'rot', 'grün', 'gelb' )&lt;/pre&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 17:49:59 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567680.html#5567680</guid>
      <dc:creator>hellbringer</dc:creator>
      <dc:date>2009-07-11T17:49:59Z</dc:date>
    </item>
    <item>
      <title>Re: SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567658.html#5567658</link>
      <description>Nein.&lt;br&gt;&lt;br&gt;&lt;a href="http://dev.mysql.com/doc/refman/5.1/de/any-in-some-subqueries.html" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;dev.mysql.com/&lt;wbr/&gt;doc/&lt;wbr/&gt;refman/&lt;wbr/&gt;5.1/&lt;wbr/&gt;de/&lt;wbr/&gt;any-in-some-subqueries.html&lt;/a&gt; &lt;br&gt;&lt;a href="http://dev.mysql.com/doc/refman/5.1/de/exists-and-not-exists-subqueries.html" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;dev.mysql.com/&lt;wbr/&gt;doc/&lt;wbr/&gt;refman/&lt;wbr/&gt;5.1/&lt;wbr/&gt;de/&lt;wbr/&gt;exists-and-not-exists-subqueries.html&lt;/a&gt; &lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 17:49:59 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567658.html#5567658</guid>
      <dc:creator>hellbringer</dc:creator>
      <dc:date>2009-07-11T17:49:59Z</dc:date>
    </item>
    <item>
      <title>SQL: ist "IN" und "EXISTS" eigentlich ident?</title>
      <link>http://forum.geizhals.at/t650700,5567652.html#5567652</link>
      <description>Ich frage mich, ob man bei SQL-Abfragen IN mit EXISTS nicht ersetzen kann?&lt;br&gt;Beide vergleichen doch die Werte in den angegebenen Spalten, oder?&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 11 Jul 2009 17:43:50 GMT</pubDate>
      <guid>http://forum.geizhals.at/t650700,5567652.html#5567652</guid>
      <dc:creator>Bueromensch</dc:creator>
      <dc:date>2009-07-11T17:43:50Z</dc:date>
    </item>
  </channel>
</rss>
