[MySQL] Sortowanie wyników |
[MySQL] Sortowanie wyników |
29.07.2012, 01:17:28
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.05.2005 Ostrzeżenie: (0%) |
Witam,
mam mały problem być może tak prosty do rozwiązania, że aż głupi ale jest. Dotyczy przesortowania wyników wyciąganych z bazy MySQL. Mianowicie mam tabelkę z kolorami: ID Kolor Seria Info 1 Biały Kobiety fghsdfgh 2 Beżowy Kobiety jhedjdghjdg 3 Czerwony Kobiety fghsdfgh 4 Zielony Mężczyźni jhedjdghjdg 5 Fioletowy Mężczyźni jhedjdghjdg 6 Amarant Mężczyźni fghsdfgh gdzie serii i kolorów jest kilkaset kombinacji, nie ma szans na przypisane sztywnego koloru do zapytania oraz tabelkę z harmonogramem: ID KolorID SeriaID InfoID Imię Nazwisko Stanowisko itd. 1 1 1 jhedjdghjdg Ania Miś Referent ... Potrzebuję w tym momencie wyświetlić wszystkich z wybranym kolorem, wybraną serią, posortować rosnąco przez stanowisko oraz zostawić wszystkie z pierwszym napotkanym InfoID w tabeli harmonogram.
Wiem, że mógłbym przed każdym wyciągnięciem wyciągnąć dodatkowo pierwsze InfoID z tabelki kolory i wrzucić do zapytania:
ale obawiam się, że już za dużo zapytań o harmonogram mam, nie chce tak obciążać bazy bo ją ubije kiedyś w końcu. Ten post edytował zman85 29.07.2012, 02:02:48 |
|
|
29.07.2012, 04:54:25
Post
#2
|
|
Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) |
Pierwsza rzecz, która rzuca się w oczy to źle zaprojektowana baza. Logiczniej byłoby tak:
kolory Kod ID[Primary, AutoIncrement]|kolor[unique] serie Kod ID[Primary, AutoIncrement]|seria uzytkownicy Kod ID[Primary, AutoIncrement]|Imie|Nazwisko|stanowisko i dopiero wtedy harmonogram Kod ID[Primary, AutoIncrement]|kolor_id|seria_id|user_id Pobranie informacji o wpisach z harmonogramu z konkretnym kolorem i serią to już tylko kwestia 1 zapytania. Nie rozumiem zupełnie za to: Cytat oraz zostawić wszystkie z pierwszym napotkanym InfoID w tabeli harmonogram.
-------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
29.07.2012, 08:02:36
Post
#3
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.05.2005 Ostrzeżenie: (0%) |
Witaj,
baza jest analogicznie stworzona jak to rozpisałeś. Może źle to napisałem, teraz powinno być prościej:
Biorąc pod uwagę stworzona pokrótce na szybko bazę, było by to wszystkie rekordy z InfoID='jhedjdghjdg'. Kolor mogę pobrać z sesji, serie również, InfoID nie mam takiej możliwości, mógłbym pobrać przez oddzielne zapytanie do innej tabeli - nie chce tego robić. Jestem przekonany, że jest jakaś funkcją pozwalająca wybrać 1 rekord ij ego ustawić jako filtr do sortowania wyników. Być może JOIN by się tutaj przydał, ale również nie mam pojęcia jak ugryźć - stąd prośba o pomoc. |
|
|
29.07.2012, 08:27:38
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) |
Hmm kiepsko to widzę:
a. sortujesz dane i na ich podstawie dopiero pobierasz InfoID b. pobierasz dane przed sortowaniem, więc nie wiesz jakie będzie pierwsze InfoID Jedyne co mi przychodzi na myśl
Pogłówkuj z tym edit: dodałem kolor_id = har.kolor_id nie wiem czy skorelowanie zadziała w wypadku sortowania po obu stronach Ten post edytował CuteOne 29.07.2012, 08:37:59 |
|
|
29.07.2012, 11:01:38
Post
#5
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.05.2005 Ostrzeżenie: (0%) |
Dziękuję CuteOne - udało się!
-- Można zamknąć. |
|
|
Wersja Lo-Fi | Aktualny czas: 31.05.2024 - 17:32 |