![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 24.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zadałem to zapytanie na pl.comp.bazy-danych, ale od dwóch dni nie uzyskałem odpowiedzi, więc spróbuję tutaj. Baza MySQL 5, mam taką zawartość tabel: CODE kategorie: id | kategoria | kolejnosc ----------------------------------- 1 | kategoria1 | 1 2 | kategoria2 | 2 3 | kategoria3 | 3 CODE pozycje: id | pozycja | kat | podpoz_do_poz | podpozycja | kolejnosc -------------------------------------------------------------------- 1 | pozycja1 | 2 | NULL | podpozycja | 1 2 | pozycja1 | 2 | 1 | podpozycja1 | 1 3 | pozycja1 | 2 | 1 | podpozycja2 | 2 4 | pozycja1 | 2 | 1 | podpozycja3 | 3 5 | pozycja2 | 1 | NULL | podpozycja | 1 6 | pozycja3 | 3 | NULL | podpozycja | 1 7 | pozycja4 | 3 | NULL | podpozycja | 2 8 | pozycja3 | 3 | 6 | podpozycja1 | 1 9 | pozycja3 | 3 | 6 | podpozycja2 | 2 10 | pozycja3 | 3 | 6 | podpozycja3 | 3 11 | pozycja3 | 3 | 6 | podpozycja4 | 4 Następnie odczytuję to, przez:
Chciałbym aby zostało to posortowane, po kolejności kategorii, następnie po kolejności pozycji, a następnie po kolejności podpozycji dla każdej z pozycji. Problem tkwi w tym, że pozycje i podpozycje są w jednej tabeli. Żeby można było jako parametr podać parę kolumn to by było ok. Czyli chciałbym otrzymać coś takiego: CODE kid | kategoria | pid | pozycja | podpoz_do_poz | podpozycja ---------------------------------------------------------------- 1 | kategoria1 | 5 | pozycja2 | NULL | podpozycja 2 | kategoria2 | 1 | pozycja1 | NULL | podpozycja 2 | kategoria2 | 2 | pozycja1 | 1 | podpozycja1 2 | kategoria2 | 3 | pozycja1 | 1 | podpozycja2 2 | kategoria2 | 4 | pozycja1 | 1 | podpozycja3 3 | kategoria3 | 6 | pozycja3 | NULL | podpozycja 3 | kategoria3 | 8 | pozycja3 | 6 | podpozycja1 3 | kategoria3 | 8 | pozycja3 | 6 | podpozycja2 3 | kategoria3 | 10 | pozycja3 | 6 | podpozycja3 3 | kategoria3 | 11 | pozycja3 | 6 | podpozycja4 3 | kategoria3 | 7 | pozycja4 | NULL | podpozycja Mam nadzieję, że wystarczająco napisałem o co mi chodzi i z góry dziękuję za wszystkie odpowiedzi. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 2 Dołączył: 9.09.2006 Skąd: Londyn/Gdynia Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 24.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
A no jednak mozna:)
w czym problem? ![]() A przeczytałeś w ogóle co pisałem ? Ale ja rozumiem - mój błąd, bo widocznie za słabo opisałem problem. To co chcę osiągnąć dało by się przez CONCAT(), ale wolał bym tego uniknąć. Wtedy sortował bym przez p.kolejnosc ASC przy warunku WHERE podpoz_do_poz IS NULL, a następnie dla każdego wiersza wyciągał bym za pomocą CONCAT() wszystkie podpozycje dla danej pozycji w jakiejś kolejności przy warunku WHERE t2.podpoz_do_poz = t1.id. Chcę oczywiście tego uniknąć, bo chodzi mi tylko o zwykłe sortowanie. Pozdrawiam |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale chociaż spróbowałeś tego co teutates napisał?
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 24.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 02:33 |