Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie do filtrowania produktów
lukasz91
post
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


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ć?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mmmmmmm
post
Post #2





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

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


  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
Go to the top of the page
+Quote Post
lukasz91
post
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


Wygląda, ze działa. Dzięki smile.gif


--------------------
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 Aktualny czas: 19.08.2025 - 19:44