
Sprowadzę całość do prostszego przykładu: mam dwie tabele: 'produkt', 'cecha' połączone relacją wiele do wielu i tabele haszującą 'produkt_cecha'. Chcę pobrać wszystkie produkty które mają dwie wybrane cechy (mam nazwy tych cech).
Napisałem coś takiego:
SELECT produkt.id FROM produkt JOIN produkt_cecha ON produkt.id = produkt_cecha.id_produktu, produkt_cecha JOIN cecha ON produkt_cecha.id_cechy = cecha.id WHERE cecha.nazwa = 'owalny' AND cecha.nazwa = 'zielony';
Co przypuszczam: Takie zapytanie nie zwróci mi żadnych produktów, bo np produkt 'jajko' będzie powielony joinem dwa razy (po razie dla każdej cechy), a nie bedzie widziane przez mysql jako jeden produkt z dwoma cechami.
Jakie zapytanie muszę napisać żeby pobrało mi produkt z dwiema cechami jednocześnie?