Mam napisać zapytane które zwróci mi faktury które zawierają dwa konkretne towary (na jednej fakturze muszą być oba te towary, a nie tylko jeden z nich).
Na razie zrobiłem takie coś:
SELECT * FROM Faktury
WHERE id_fak IN
(
SELECT id_fak FROM FakturySZ fsz
WHERE EXISTS (SELECT * FROM FakturySZ WHERE id_towar = 1 AND id_fak = fsz.id_fak)
AND EXISTS (SELECT * FROM FakturySZ WHERE id_towar = 2 AND id_fak = fsz.id_fak)
)
Ale jak będę chciał wyszukać faktury które mają 3 (lub jeszcze więcej) konkretne towary to mam dodawać kolejne bloki EXISTS?
Może jest jakiś prostszy i bardzie elegancki sposób?