![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 49 Dołączył: 12.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam zapytanie do bazy danych:
Zapytanie wykonuje się, natoniast wyniki od góry w kolumnie gradeValue to: 5, 6, 6, 3,5, 4,5 itd. Dlaczego tak się dzieje? Czy ktoś mógłby mnie nakierować? Pozdrawiam, mlawnik |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 335 Pomógł: 34 Dołączył: 9.11.2005 Skąd: Wrocław Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 49 Dołączył: 12.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
EDIT:
Dobra problem rozwiązany. Dla potomnych: Jeżeli chcemy, aby zapytanie z inner join zostało posortowane, oprócz kolumny należy określić tabelę:
EDIT 2: Dzięki in5ane, wpadłem na to w tej samej chwili. W sumie stackoverflow twoim przyjacielem (IMG:style_emoticons/default/tongue.gif) Pomógł leci. Ten post edytował mlawnik 15.06.2013, 13:31:19 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dla potomnych:
NIGDY NIE DAJEMY NAZWY KOLUMNY DO SORTOWANIA W APOSTROFACH. (i to był twój błąd) Bo te oznaczają tekst. Więc dla każdego rekordu brana była wartość 'gradeValue' (ten tekst) i porównywana do tekstu 'gradeValue' z poprzedniego rekordu... Nie musimy kolumny prefiksować nazwą tabeli, o ile jest ona unikalna w ramach tabel (podselektów), z których korzystamy. Dopiero, gdy nazwy kolumn się powtarzają to nalezy prefiksować. Zarówno w SELECT, ORDER BY, jak i we WHERE. Dodatkowo w MySQL przy ORDER BY trzeba pamiętać, że sortuje wg nazw kolumn zwracanych. Czyli np. SELECT Abs(liczba) As liczba FROM tabela ORDER BY liczba w rzeczywistości posortuje po Abs(liczba) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 19:24 |