Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Zapytanie: Ostatnio przekazywany do...
Forum PHP.pl > Forum > Bazy danych > MySQL
crooger
Witam serdecznie forumowiczów!

Mam poważny problem z jednym z zapytań. Posiadam w bazie mysql 4.1 dwie tabele :

  1. --
  2. -- Struktura tabeli dla `przekaz`
  3. --
  4.  
  5. CREATE TABLE `przekaz` (
  6. `id` int(10) NOT NULL AUTO_INCREMENT,
  7. `serwis` int(10) NOT NULL DEFAULT '0',
  8. `do` int(2) NOT NULL DEFAULT '0',
  9. `kiedy` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


oraz

  1. --
  2. -- Struktura tabeli dla `serwis`
  3. --
  4.  
  5. CREATE TABLE `serwis` (
  6. `id` int(10) NOT NULL AUTO_INCREMENT,
  7. `zlecenie` varchar(50) collate utf8_bin NOT NULL DEFAULT '',
  8. `nazwisko` varchar(50) collate utf8_bin NOT NULL DEFAULT '',
  9. `imie` varchar(50) collate utf8_bin NOT NULL DEFAULT '',
  10. `adres` text collate utf8_bin NOT NULL,
  11. `opisrozwiazania` text collate utf8_bin NOT NULL,
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


Jeżeli chodzi o powiązania pomiędzy tymi tabelami to klucz id tabeli serwis ma swoje odzwierciedlenie w polu serwis tabeli przekaz.

Chodzi mi o to, że potrzebuję wszystkie elementy tabeli serwis, wraz z informacją kiedy i gdzie zostało serwisowanie przekazane. Pomóc może informacja, że każdy serwis ma przynajmniej jedno przekierowanie (tworzone podczas dodawania) :-)

Męczę się i męczę i nic nie potrafię wykombinować. Tzn doszedłem do czegoś takiego:

  1. SELECT s.*, p.do, p.kiedy
  2. FROM serwis s , przekaz p
  3. WHERE s.id = p.serwis
  4. GROUP BY s.id, p.kiedy
  5. ORDER BY s.id, p.kiedy DESC


tylko to nie zwraca mi zupełnie tego co chciałem sad.gif ohmy.gif

Jest ktoś w stanie pomóc ?
Pozdrawiam i dzięki z góry za pomoc
UDAT
Poczytaj sobie o:
JOIN i FOREIGN KEY
crooger
  1. SELECT s.id AS sid, p.*
  2. FROM serwis s JOIN przekaz p ON s.id=p.serwis
  3. WHERE p.kiedy = (SELECT MAX(p1.kiedy) FROM przekaz p1 WHERE p1.serwis = p.serwis)
  4. GROUP BY s.id
  5. ORDER BY p.kiedy DESC
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.