[sql] W jakich kategoriach jest produkt tego producenta?

2016-10-02 21:58:20 Post #1 gość_Dawid_89

 
Witam.

Przerabiam pewien skrypt sklepu internetowego. Skrypt wykonała "firma trzecia" mi natomiast przyszło dodać pewne funkcje.

Mam tabele z kategoriami KAT, produktami PROD i ich połączeniem PROD_KAT.

Potrzebuje wygenerować numery kategorii w których sa produkty przypisane do producenta o wybranym ID_PRODUCENT.
Czyli np dla producenta adidas, potrzebuje sprawdzic w jakich kategoriach sa produkty tego producenta.

Wcześniej, jak informacja o przypisaniu do kategorii była w jednej tabeli z produktami, poszlo bezproblemu, teraz jest to rozdzielone i nie mogę sobie z tym poradzić.

Ułożyłem takie zapytanie SQL

SELECT pk.kat_id, p.producent, COUNT( pk.* ) AS ilosc 
  FROM prod p 
  LEFT JOIN prod_kat pk ON p.prod_id = pk.prod_id 
  WHERE p.odmiana='' AND p.producent!='' 
  GROUP BY p.producent, pk.kat_id
  ORDER BY p.producent


Co robię źle? Podobne zapytanie z GROUP BY dla jednej tabeli dziala bezproblemowo.

2016-10-02 21:59:47 Post #2 gość_Dawid_89

 
Dodam jeszcze jak wygladaja poszczegolne tabele:

PROD:
prod_id, prod_nazwa itd...

KAT:
kat_id, kat_nazwa itd...

PROD_KAT:
prod_id, kat_id, itd.

2016-10-02 23:21:37 Post #3 nospor

 
Troche przekombinowales. Skoro szukasz kategorii dla danego producenta to ma byc WHERE a nie GROUP BY

SELECT k.name 
  FROM prod p 
  LEFT JOIN prod_kat pk ON p.prod_id = pk.prod_id
  LEFT JOIN kat k on k.id = pk.kat_id 
  WHERE p.producent = ID_SZUKANEGO_PRODUCENTA

I juz

2016-10-03 00:23:34 Post #4 gość_Dawid_89

 
Dziekuje za odpowiedź.

Problmem jest to, ze w danym momencie nie mam akurat jednego producenta.

Zapytanie to jest wykonywane do generowania gotowych zestawów tablic w pliku zapisywanym na serwerze tzw cache.

Czy w takim razie musze całośc wrzucic w pętle i przeleciec po kolei wszystkich producentów? Czasami moze byc ich duzo, chociaz operacja wykonywana jest sporadycnzie wadministracji, nie powinno mieć aztak wielkie znaczenie optymalizacjatego elementu. Count byl potrzebny poniewaz chcialem miec dla kazdej poycji od razu ilosci tych produktów dla kazdej kategorii.

2016-10-03 11:04:49 Post #5 nospor

 
No dobrze, rozumiem. A co jest nie tak w takim razie z twoim pierwszym zapytaniem?

Odpowiedz

Ostatnio komentowane

  1. Mysql - FAQ Paweł
  2. Pager 2.5.1 oraz EPa... Na szybko2
  3. Pager 2.5.1 oraz EPa... Sławek
  4. Mysql - FAQ Piotr
  5. Liczba dni roboczych Na szybko2
  6. Liczba dni roboczych Naszybko
  7. Klasa widoku nospor

Skrypty użytkowników

  1. Klasa obsługi szablo... Lirdoner
  2. Sekcje user76
  3. Klasa walidująca for... user76
  4. Licznik Gości online korey
  5. Form Builder Comandeer
  6. Dynamiczny licznik z... korey
  7. Captcha Comandeer