![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() Ten post edytował q3d 12.04.2018, 12:06:04 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 19 Dołączył: 1.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
SELECT id_product FROM tabela WHERE id_feature_value IN (5, 14, 17)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@leon czego nie rozumiesz w slowie "i" ?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiem, że to śmieszne ale nie mogę sobie z tym poradzić
![]() Przecież nie mogę zrobić AND
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ę... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 19 Dołączył: 1.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
.... WHERE id_feature_value IN (5, 14, 17) GROUP BY id_product HAVING Count(DISTINCT id_product)=3
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
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:
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. Ten post edytował q3d 12.04.2018, 19:40:08 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 19 Dołączył: 1.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
nospor dobrze Ci podał składnię. Zamień tylko:
HAVING Count(DISTINCT id_product)=3 na HAVING Count(DISTINCT id_feature_value)=3 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 ![]() ![]() Ten post edytował leonpro778 12.04.2018, 20:03:57 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje dobrzy ludzie!
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:51 |