![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Mam dwie tabele stworzone według zapytań jak niżej.
W "events" zapisuję pewne zdarzenia powtarzalne w czasie wykonywane przez osoby z tabelki "persons". Każde zdarzenie ma jak widać dwa stany. Moje pytanie jest nastepujące: Jak wydostać sName wszystkich osób, których ostatnim wykonanym zdarzeniem jest 'In'? Próbowąłem pokombinowąć trochę, ale jedyne co mi wysżło to:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
A ja mimo wszystko byłem przekonany, że można to zrobić przy pomocy MySQL 4.0
I wydaje mi się, że są to dokładnie oczekiwane wyniki, czyli lista wszystkich osób które teraz są In, i nie zdążyły jeszcze wyjść. ps. Ale, scanner, podobierałeś nazwy kolumn i tabel. Mój phpMyAdmin ledwie sobie z nimi radził, a już np. ustawiene sortowania w tabeli events, przy pomocy kliknięcia w nazwę kolumny, praktycznie graniczyło z cudem. --- edited ---- Co ciekawe jest jeszce prostsze rozwiązanie. Dla czytelności - nie dołączam tabeli persons
gdzie warunek events.iId < events2.iId może być zastąpiony przez events.iTimestamp < events2.iTimestamp, jeśli może się zdarzyć sytuacja, że kolejność id nie informuje nas wcale o kolejności zdażeń (bo np. wiersz był edytowany i została mu nadana nowa wartość i data, a id pozostało to samo). --- edited 2 --- zabawa mi się spodobała. I dzięki temu wiem, że można jeszcze inaczej (ciekawe, czy optymalniej...) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
pojawia się tu wartość 14 i 16 ponieważ zmieniłem sobie typ kolumny na timestamp 14. Ty musiałbyś dostosować tą wartość do długości swojego zapisu daty., |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 18:03 |