Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupowanie kilku kolumn względem siebie
Forum PHP.pl > Forum > Bazy danych > MySQL
joordan
Siedzę dzisiaj cały dzień i nie mogę znaleźć rozwiązania. Próbowałem łączyć trzy zapytania w jedno, zrobić to na tablicach wielowymiarowych, próbowałem zrobić to na kilku pętlach i wspomóc to jakimś wyrażeniem w if. Nie mam pojęcia jak uzyskać zamierzony efekt. Czy to w ogóle jest możliwe...?


Gdy zapytanie piszę w ten sposób wychodzą mi jakieś głupoty.

  1. $zapytanie= mysql_query("SELECT kolor1, kolor2, kolor3 FROM przedmiot GROUP BY kolor1 AND kolor2 AND kolor3");
  2. while($zap= mysql_fetch_array($zapytanie))
  3. {
  4. echo '<p>'.zap[0].'</p><p>'.zap[1].'</p><p>'.zap[2].'</p>'
  5. }




Powiedzmy że tabela wygląda tak

kolor1 | kolor2 | kolor3
| 2 | 3 | 4 |
| 3 | 3 | 1 |
| 2 | 1 | |
| 3 | 1 | 3 |
| 2 | 1 | 3 |

I chcę z niej wybrać kolor1, kolor2, kolor3

W tej postać
1
2
3
4

Zamiast
2
3

1
3

1
3
4
pmir13
Ale skąd te kolory 5,6,7? Czy ten przykład na pewno jest poprawny?
joordan
Przepraszam, poprawiłem tongue.gif
pmir13
Jeśli chodzi o wypisanie możliwych kolorów z trzech różnych kolumn to wystarczy:

  1. SELECT DISTINCT(kolor1) AS kolor FROM przedmiot
  2. UNION SELECT DISTINCT(kolor2) AS kolor FROM przedmiot
  3. UNION SELECT DISTINCT(kolor3) AS kolor FROM przedmiot
  4. ORDER BY kolor
joordan
Wielkie dzięki. Samouk bez studiów wiecznie głupi, nawet nie wziąłem pod uwagę klauzury AS tongue.gif


Ja próbowałem w ten sposób ;P
  1. (SELECT DISTINCT kolor1 FROM przedmiot) UNION (SELECT DISTINCT kolor2 FROM przedmiot)
mmmmmmm
  1. SELECT kolor1, kolor2, kolor3 FROM przedmiot GROUP BY kolor1 AND kolor2 AND kolor3

To są jakieś głupoty. Powinno ci tak rzygnąć Errorem, bys do końca życia zapamiętał, że tak się nie robi.
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.