Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] wyciagniecie ostatniego rekordu wraz z GROUP BY
Forum PHP.pl > Forum > Bazy danych > MySQL
AndyPSV2
zapytanie jakie mam:
  1. SELECT *,COUNT(*) AS cnt FROM '.PRFX.'messages WHERE _to = "'.$this->u['id'].'" GROUP BY _from ORDER BY id DESC LIMIT '.($pg*$PER_PG).','.$PER_PG.'')


  1. id _from _to date message read
  2. 1 3 1 2011-11-07 13:49:54 dasdsasaddsadsa 0
  3. 2 3 1 2011-11-07 13:50:18 newest message 0


wynik jaki dostaje:
  1. array ( 0 => array ( 'id' => '1', '_from' => '3', '_to' => '1', 'date' => '2011-11-07 13:49:54', 'message' => 'dasdsasaddsadsa', 'read' => '0', 'cnt' => '2', ), )


wynik jaki chce uzyskac:
  1. array ( 0 => array ( 'id' => '2', '_from' => '3', '_to' => '1', 'date' => '2011-11-07 13:50:18', 'message' => 'newest message', 'read' => '0', 'cnt' => '2', ), )


jak to zrobic?

kombinowalem roznie, ale nie wyszlo np.
  1. 'SELECT id,date,message,COUNT(*) as cnt FROM (SELECT MAX(date) AS date,message FROM '.PRFX.'messages WHERE _to = "'.$this->u['id'].'" GROUP BY _from ORDER BY date DESC) LEFT JOIN '.PRFX.'messages USING (date,message) LIMIT '.($pg*$PER_PG).','.$PER_PG.''
Sephirus
  1. SELECT *,COUNT(*) AS cnt FROM (SELECT * FROM '.PRFX.'messages WHERE _to = "'.$this->u['id'].'" ORDER BY id DESC) x GROUP BY _fromR ORDER BY id DESC LIMIT '.($pg*$PER_PG).','.$PER_PG.'')
  2.  
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.