Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][SQL]Pobranie danych z tabeli
Forum PHP.pl > Forum > Przedszkole
q3d
Tabela o strukturze
id_feature|id_product|id_feature_value

Z tabeli chcę pobrać id_product dla których id_feature_value = 5 i id_feature_value = 14 i id_feature_value=17

i szczerze jakoś zgłupiałem sad.gif
leonpro778
SELECT id_product FROM tabela WHERE id_feature_value IN (5, 14, 17)
nospor
@leon czego nie rozumiesz w slowie "i" ?
q3d
Wiem, że to śmieszne ale nie mogę sobie z tym poradzić smile.gif
Przecież nie mogę zrobić AND
  1. SELECT id_product FROM tabela WHERE id_feature_value=5 AND id_feature_value=14 AND id_feature_value=17

a taka jest struktura tej tabeli, że jest tam id_product=2, id_product=3, id_product=4 i dla nich różne wartości w id_feature_value. Chce pobrać tylko id_product, które jednocześnie mają wartość 5,14,17.

Poszukałbym w sieci ale w tym stanie to nawet nie wiem co wpisać. Może się przejdę...
leonpro778
Cytat(nospor @ 12.04.2018, 14:28:23 ) *
@leon czego nie rozumiesz w slowie "i" ?


Lol... założyłbym się, że tam nie było i tylko | :/
...albo mi już się zlewają litery...
nospor
.... WHERE id_feature_value IN (5, 14, 17) GROUP BY id_product HAVING Count(DISTINCT id_product)=3
q3d
Dziękuje bardzo. Niestety mimo że w tabeli są id_product (konkretnie 2) które jednocześnie w różnych rekordach mają id_feature_value = 5, id_feature_value=14, id_feature_value=17 to zapytanie zwraca mi brak rekordów.
Pierwsza część zapytania czyli:
  1. WHERE id_feature_value IN (5, 14, 17) GROUP BY id_product


zwraca x rekordów wśród których są te dwa ale rekordy wyglądają "dziwnie":
id_feature | id_product | id_feature_value
2 1 3
2 2 3
2 3 3
...

różnica tylko w id_product. Co z tym ma zrobić druga część: HAVING Count(DISTINCT id_product)=3 by zwrócić wynik to nie rozumiem.
leonpro778
nospor dobrze Ci podał składnię. Zamień tylko:

HAVING Count(DISTINCT id_product)=3

na

HAVING Count(DISTINCT id_feature_value)=3

Cytat(q3d @ 12.04.2018, 20:37:12 ) *
Co z tym ma zrobić druga część: HAVING Count(DISTINCT id_product)=3 by zwrócić wynik to nie rozumiem.

Ta część znaczy mniej więcej, że id_product ma mieć DOKŁADNIE tyle rekordów z id_feature_value co ilość liczb podanych wcześniej w IN smile.gif (chyba sam się zakręciłem) biggrin.gif
q3d
Dziękuje dobrzy ludzie!
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.