Hängt von Ihrer SQL-Engine ab. Neuere SQL-Systeme, die vernünftige Abfrageoptimierer haben, schreiben höchstwahrscheinlich beide Abfragen in den gleichen Plan um. In der Regel wird eine Unterabfrage (Ihre zweite Abfrage) mithilfe eines Joins (der ersten Abfrage) neu geschrieben.
In einfachen SQL-Engines, die keine großen Abfrageoptimierer haben, sollte der Join schneller sein, da sie Unterabfragen in eine temporäre In-Memory-Tabelle ausführen können, bevor sie die äußere Abfrage ausführen.
In einigen SQL-Engines mit begrenztem Speicherbedarf ist die Unterabfrage jedoch möglicherweise schneller, da kein Join erforderlich ist. Dadurch werden mehr Daten erzeugt.
Also, zusammenfassend, es kommt darauf an.
gibt es auch eine andere Option, EXISTS. Ich bin ein Tsql-Typ, also ....
%Vor%Ich denke EXISTS ist in den meisten Engines verfügbar. Es ist im Allgemeinen ziemlich schnell.
IN sql server mindestens (2005+) gibt es überhaupt keine Leistungsdifferenz zwischen IN und EXISTS für Fälle, in denen die fragliche Spalte nicht NULLABLE ist.
wahrscheinlich irrelevant, aber hey .....
Tags und Links sql mysql inner-join