Eficiência do SQL: WHERE IN Subquery vs. JOIN e depois GROUP
Por exemplo, quero obter a lista de todos os itens com determinadas tags aplicadas a eles. Eu poderia fazer um dos seguintes:
SELECT Item.ID, Item.Name
FROM Item
WHERE Item.ID IN (
SELECT ItemTag.ItemID
FROM ItemTag
WHERE ItemTag.TagID = 57 OR ItemTag.TagID = 55)
Ou
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
Ou algo totalmente diferente.
Em geral (supondo que haja uma regra geral), o que é uma abordagem mais eficiente?