Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie duplikatów x lub więcej powtórzeń
duch4ever
post
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 22.06.2010

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


Witam, mam zapytanie:

  1. SELECT DISTINCT p.id_product, pac.id_attribute
  2. FROM `ps_product` p, ps_product_attribute pa, ps_product_attribute_combination pac
  3. WHERE p.id_product = pa.id_product
  4. AND pac.id_product_attribute = pa.id_product_attribute
  5. AND pac.id_attribute
  6. IN ( 14, 22 )


które zwraca następujący wynik:

id_product id_attribute
1 14
10 14
10 22
12 22

Jak widać id_product 10 zawiera obydwa atrybuty (14 i 22) natomiast pozostałe po jednym.
I to działa ale chciałbym z automatu by pobierało tylko te przedmioty które posiadają WSZYSTKIE podane na wejściu atrybuty (w ty przypadku dwa).
Czyli by wynik nie zawierał id 1 i 12, kombinowałem z joinami heaving itp ale nie wychodzi mi więc pytam was drodzy forumowicze bo wiem że jest na to sposób..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. mysql> SELECT DISTINCT id_1, id_2 FROM test_1;
  2. +------+------+
  3. | id_1 | id_2 |
  4. +------+------+
  5. | 1 | 14 |
  6. | 10 | 14 |
  7. | 10 | 22 |
  8. | 12 | 22 |
  9. +------+------+
  10. 4 rows IN SET (0.00 sec)
  11.  
  12. mysql> SELECT DISTINCT id_1, id_2 FROM test_1 WHERE id_1 IN (SELECT id_1 FROM test_1 GROUP BY id_1 HAVING count(*)>1 );
  13. +------+------+
  14. | id_1 | id_2 |
  15. +------+------+
  16. | 10 | 14 |
  17. | 10 | 22 |
  18. +------+------+
  19. 2 rows IN SET (0.01 sec)


takie coś wymyśliłem musisz sobie coś wykombinować jak to w swoim osadzić.
Go to the top of the page
+Quote Post

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: 3.10.2025 - 16:41