SQL-Effizienz: WHERE IN Subquery vs. JOIN dann GROUP

Als Beispiel möchte ich eine Liste aller Elemente mit bestimmten Tags erhalten. Ich könnte eines der folgenden Dinge tun:

SELECT Item.ID, Item.Name
FROM Item
WHERE Item.ID IN (
    SELECT ItemTag.ItemID
    FROM ItemTag
    WHERE ItemTag.TagID = 57 OR ItemTag.TagID = 55)

Oder

SELECT Item.ID, Item.Name
FROM Item
LEFT JOIN ItemTag ON ItemTag.ItemID = Item.ID
WHERE ItemTag.TagID = 57 OR ItemTag.TagID = 55
GROUP BY Item.ID, Item.Name

Oder etwas ganz anderes.

Was ist im Allgemeinen (unter der Annahme, dass es eine allgemeine Regel gibt) ein effizienterer Ansatz?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage