Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][SQL]Pobranie danych z tabeli
q3d
post 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 sad.gif

Ten post edytował q3d 12.04.2018, 12:06:04
Go to the top of the page
+Quote Post
leonpro778
post 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)
Go to the top of the page
+Quote Post
nospor
post 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

Go to the top of the page
+Quote Post
q3d
post 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ć 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ę...
Go to the top of the page
+Quote Post
leonpro778
post 12.04.2018, 13:57:25
Post #5





Grupa: Zarejestrowani
Postów: 146
Pomógł: 19
Dołączył: 1.03.2012

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


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...

Ten post edytował leonpro778 12.04.2018, 13:58:48
Go to the top of the page
+Quote Post
nospor
post 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

Go to the top of the page
+Quote Post
q3d
post 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:
  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.

Ten post edytował q3d 12.04.2018, 19:40:08
Go to the top of the page
+Quote Post
leonpro778
post 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

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

Ten post edytował leonpro778 12.04.2018, 20:03:57
Go to the top of the page
+Quote Post
q3d
post 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!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 21:23