Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Zapytanie z grupowaniem
-lukasamd-
post
Post #1





Goście







Witam,
mam tabelę o takiej strukturze:

id | element_id | type_id | value


Chciałbym w 1 zapytaniu pobrać określone id i element_id pogrupowane poprzez type_id. Do jednego type_id może być wiele element_id
Jak więc powinno to wyglądać, aby w PHP można było to potem sensownie podzielić (musi być 1 zapytanie)?

Nie wiem czy zapytanie jest dobre, ale powinno zobrazować o co mi chodzi:

  1. SELECT * FROM tabela
  2. WHERE element_id IN (1,5,8,9,10) AND type_id = '1'
  3. OR element_id IN (2,7,15) AND type_id = '2'
  4. OR element_id IN (3,6,12,13,14) AND type_id = '3'
  5. ORDER BY type_id


Obawiam się jednak, że OR zostanie źle potraktowane, tzn. równolegle do AND, a powinno być tak jak w zapisie logicznym (nawiasy):

((element_id IN (1,5,8,9,10)) && (type_id = 1)) || ((element_id IN (2,7,15)) && (type_id = 2)) || ((element_id IN (3,6,12,13,14)) && (type_id = 3))

Aha, dla różnych type_id mogą występować TAKIE SAME element_id (nie uwzględniłem tego w przykładzie).

Ten post edytował lukasamd 13.02.2010, 09:11:53
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


A czy
element_id IN (1,5,8,9,10) AND type_id = '1'
oprócz liczb w nawiasie element_id może przyjąć inną wartość type_id (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
-lukasamd-
post
Post #3





Goście







Nie.
Type_id są wstawiane "na sztywno". Zakres IN de facto dla każdego przedziału również jest jawny (acz kompletowany i wrzucany do zapytania po kilku operacjach w php).

Chodzi o to, że dla innych type_id mogą być wartości element_id o takich samych wartościach (traktujemy type_id niejako kategorię), zaś chciałbym to logicznie w sql rozpisać.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 19:49