[MySQL][SQL]Pobranie danych z tabeli |
[MySQL][SQL]Pobranie danych z tabeli |
12.04.2018, 12:05:21
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 |
|
|
12.04.2018, 13:26:13
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)
|
|
|
12.04.2018, 13:28:23
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 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 |
|
|
12.04.2018, 13:54:45
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ę... |
|
|
12.04.2018, 13:57:25
Post
#5
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 19 Dołączył: 1.03.2012 Ostrzeżenie: (0%) |
|
|
|
12.04.2018, 16:11:07
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 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 |
|
|
12.04.2018, 19:37:12
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 |
|
|
12.04.2018, 19:56:43
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 (chyba sam się zakręciłem) Ten post edytował leonpro778 12.04.2018, 20:03:57 |
|
|
12.04.2018, 21:01:12
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: 26.04.2024 - 21:23 |