Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie do filtrowania produktów
Forum PHP.pl > Forum > Bazy danych > MySQL
lukasz91
User 1 ma produkty A I B
User 2 ma produkt A

Przy filtrowaniu admin wybiera produkt A. Na liście wyników ma mu pokazać tylko Usera 2. User 1 ma nie pokazać się, ponieważ ma dodatkowo produkt B.

Na liście ma pokazywać tylko tych użytkowników, co mają dokładnie takie produkty jak wybrane z listy filtrowania.

Mój sql wygląda teraz tak:
  1. SELECT u.* FROM user u LEFT JOIN product_user pu ON(u.user_id=pu.user_id) WHERE 1=1 AND pu.product_id IN (1) AND pu.product_id NOT IN (2) GROUP BY pu.user_id HAVING Count(DISTINCT pu.product_id)=1 ORDER BY u.user_id DESC


ale kod nie działa tak jak trzeba. Jak go poprawić?
mmmmmmm
  1. SELECT u.* FROM user u JOIN product_user pu ON (u.user_id=pu.user_id) WHERE 1=1 GROUP BY pu.user_id HAVING Count(DISTINCT case when pu.product_id IN (1) then pu.product_id end)=1 AND Count(DISTINCT pu.product_id)=1 ORDER BY u.user_id DESC
lukasz91
Wygląda, ze działa. Dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.