J'ai une table appelée transactions avec une relation plusieurs-à-plusieurs aux éléments via la table items_transactions.SQL: relation plusieurs-à-plusieurs, condition IN
Je veux faire quelque chose comme ceci:
SELECT "transactions".*
FROM "transactions"
INNER JOIN "items_transactions"
ON "items_transactions".transaction_id = "transactions".id
INNER JOIN "items"
ON "items".id = "items_transactions".item_id
WHERE (items.id IN (<list of items>))
Mais cela me donne toutes les transactions qui ont un ou plusieurs des éléments dans la liste qui y sont associés et je ne le veux me donner les transactions sont associés à tous ces éléments.
Toute aide serait appréciée.
Votre code SQL serait plus facile à lire si vous aviez utilisé la touche RETURN. –
Oublié de demander, de qui parle-t-on - Sql Server? – amelvin
Je ne sais pas encore comment faire cela avec SQL par ses propres moyens mais vous pouvez écrire une requête dynamique où vous ajouterez 'et item.id = itemX', la première dans la boucle serait 'où item.id = itemY' .. – eugeneK