robię sklep i aktualnie siedzę nad filtrowaniem produktów po atrybutach.
no i mam tabele produkty gdzie jest np ID i nazwa
i jest tabela produktu_atrybuty gdzie jest spi atrybutów
no i tabela produkty_atrybuty_wartosci gdzie są zapisane atrybuty produktów (jeden produkt może ich mieć kilka)
no i teraz jak zrobić filtrowanie tak żeby wybrać produkty które mają np wybrane dwa atrybuty zdefiniowane w konkrenty sposób, np kolor i rozmiar.
spłodziłem takie zapytanie:
SELECT p.id,p.nazwa_pl FROM produkty p,produkty_atrybuty_wartosci paw WHERE (paw.atrybut_id=2 AND paw.wartosc=4) AND (paw.atrybut_id=3 AND paw.wartosc=0) AND p.id=paw.produkt_id GROUP BY p.id
Jak ugryźć to zapytanie żeby to zadziałało? Wiem jak to zrobić z OR'em zamiast AND'a ale nie o to mi chodzi, ma pokazać tylko i wyłącznie te produkty które spełniają wymagania wszystkich filtrów.
z góry dzięki