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?