Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ostatnie zdarzenie dla określonego warunku
scanner
post 20.12.2004, 13:48:21
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:
  1. SELECT persons.sCode, persons.sName, events.iTimestamp
  2. FROM events LEFT JOIN persons ON events.sCode = persons.sCode
  3. WHERE sAction = 'In'
  4. GROUP BY events.sCode
  5. ORDER BY events.iTimestamp DESC

  1. -- Wersja serwera: 4.0.22
  2. -- Wersja php: 5.0.2
  3.  
  4. CREATE TABLE `events` (
  5. `iID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  6. `sCode` varchar(12) NOT NULL DEFAULT '0',
  7. `iTimestamp` int(11) NOT NULL DEFAULT '0',
  8. `sAction` SET('In','Out') DEFAULT NULL,
  9. PRIMARY KEY (`iID`)
  10. ) TYPE=MyISAM;
  11.  
  12. CREATE TABLE `persons` (
  13. `iID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  14. `sCode` varchar(12) NOT NULL DEFAULT '0',
  15. `sName` varchar(255) NOT NULL DEFAULT '',
  16. `iBirthdate` int(11) NOT NULL DEFAULT '0',
  17. `sAppointmentCode` varchar(12) NOT NULL DEFAULT '0',
  18. `sAppointmentName` varchar(255) NOT NULL DEFAULT '',
  19. `sPhoto` longblob NOT NULL,
  20. PRIMARY KEY (`iID`)
  21. ) TYPE=MyISAM;


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 14:50