Code :
CREATE TABLE salles_softs ( salle_id int NOT NULL, soft_id int NOT NULL ); CREATE INDEX ix_salles_softs ON salles_softs (salle_id, soft_id); INSERT INTO salles_softs (salle_id, soft_id) VALUES (1, 1); INSERT INTO salles_softs (salle_id, soft_id) VALUES (1, 1); INSERT INTO salles_softs (salle_id, soft_id) VALUES (1, 3); INSERT INTO salles_softs (salle_id, soft_id) VALUES (2, 1); INSERT INTO salles_softs (salle_id, soft_id) VALUES (2, 3); INSERT INTO salles_softs (salle_id, soft_id) VALUES (3, 1); INSERT INTO salles_softs (salle_id, soft_id) VALUES (3, 1); INSERT INTO salles_softs (salle_id, soft_id) VALUES (3, 2); INSERT INTO salles_softs (salle_id, soft_id) VALUES (4, 1); INSERT INTO salles_softs (salle_id, soft_id) VALUES (4, 2); INSERT INTO salles_softs (salle_id, soft_id) VALUES (4, 3); SELECT salle_id FROM salles_softs WHERE soft_id IN (1, 2) GROUP BY salle_id HAVING count(DISTINCT soft_id) = 2; DROP TABLE salles_softs;
|