id id_produkt nazwa wartosc id_kat id_param 149 4914 producent Toshiba 38 8 150 4914 rodzina produktów Satellite 38 9 151 4914 rodzaj procesora AMD Turion 64 X2 Dual-Core 38 10 152 4914 typ procesora TL-60 38 11 153 4914 częstotliwość procesora 2.0 GHz 38 12 154 4914 pamięć RAM 3072 MB 38 13 155 4914 dysk twardy 250 GB 38 14 156 4914 napęd optyczny DVD-SuperMulti 38 15 157 4914 karta graficzna ATI Radeon X1250 do 831 MB 38 16 158 4914 przekątna matrycy 15.4" 38 17 159 4914 rozdzielczość? matrycy 1280 x 800 WXGA 38 18
to oczywiście tylko niewielki wycinek tabeli.
i zapytanie:
SELECT id_produkt FROM parametry WHERE ((id_param=14 AND wartosc='160 GB') OR (id_param=14 AND wartosc='250 GB')) OR ((id_param=11 AND wartosc='Athlon 64 X2')) GROUP BY id_produkt LIMIT 0, 50;
tabela zawiera parametry produktów (na przykładzie komputerów). mam jeszcze druga tabele z produktami i łącze ją za pomocą JOIN ale dodanie tej tabeli ie stanowi dla mnie problemu więc osunąłem ją z zapytania żeby nie zaciemnieć sprawy.
zapytanie ma za zadanie wyszukać produkty o określonych parametrach i wyświetlić np komputery: procesor Athlon 64 X2 i dysk 250 lub 160, wyniki muszą oczywiście zawierać oba warunki czyli procesor i dysk. w podanym wyżej zapytaniu użyłem operatora OR i szuka mi teraz wszystkich produktów które spełniają jeden z warunków czyli procesor lub dysk, oczywiście zmiana operatora na AND nie wyświetli nic tu trzeba użyć innej metody być może podzapytań? Ja niestety nie wiem w jaki sposób to ugryźć.
Ma ktoś jakiś pomysł?
Z góry dziękuje za odpowiedź