Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie duplikatów x lub więcej powtórzeń
Forum PHP.pl > Forum > Bazy danych > MySQL
duch4ever
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..
piotrooo89
  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ć.
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.