SELECT *
FROM magasin
WHERE id_magasin IN (
(SELECT id_magasin FROM magasin_detail WHERE service_propose = 'a' AND prix_service = '1')
INTERSECT
(SELECT id_magasin FROM magasin_detail WHERE service_propose = 'b' AND prix_service = '2')
INTERSECT
(SELECT id_magasin FROM magasin_detail WHERE service_propose = 'c' AND prix_service = '3')
INTERSECT
(SELECT id_magasin FROM magasin_detail WHERE service_propose = 'd' AND prix_service = '4')
INTERSECT
(SELECT id_magasin FROM magasin_detail WHERE service_propose = 'e' AND prix_service = '5')
)
Ce code aurait pu fonctionner, mais si, dans la condition, j'enlève un des services proposés par le magasin, il me le propose quand même...