Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SOLVED] Join i warunek where
lukasz91
post
Post #1





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

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


Mam tabelę product_user zawierającą product_id i user_id (relacja m do n).

Klient chce filtrowanie użytkowników po produktach. Jeżeli z selecta wybierze 2 produkty to na liście mają mu się pokazać tylko użytkownicy posiadający 2 produkty równocześnie.

Jak napisać do tego zapytanie? Z OR nie byłoby problemu, ale z AND nie mam pomysłu...

Ten post edytował lukasz91 6.08.2015, 11:29:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukasz91
post
Post #2





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

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


Odkopuję temat, ponieważ klient chce jeszcze to zmodyfikować. Może opiszę na przykładzie:

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

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 11:53