Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] filtrowanie po atrybutach, zgłupiałem...
Avatarus
post 30.12.2013, 17:33:39
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


Może to brak snu dziękuje kochanej 6 miesięcznej córce, ale nie mogę przeskoczyć pewnego problemu.

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:
  1. 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


--------------------
Go to the top of the page
+Quote Post
mmmmmmm
post 30.12.2013, 21:57:54
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


  1. SELECT p.id,p.nazwa_pl FROM produkty p JOIN produkty_atrybuty_wartosci paw ON p.id=paw.produkt_id WHERE (paw.atrybut_id,paw.wartosc) IN ((2,4),(3,0)) GROUP BY p.id, p.nazwa_pl HAVING COUNT(DISTINCT paw.atrybut_id)=2
Go to the top of the page
+Quote Post
Avatarus
post 30.12.2013, 22:20:29
Post #3





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


dzięki wielkie


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 01:12