sql >> Database teknologi >  >> RDS >> Mysql

php mysql Group By for at få seneste post, ikke første post

Hvis du vælger attributter, der ikke bruges i gruppeudtrykket, og som ikke er aggregater, er resultatet uspecificeret. Dvs. du ved ikke, hvilke rækker de andre attributter er valgt fra. (Sql-standarden tillader ikke sådanne forespørgsler, men MySQL er mere afslappet).

Forespørgslen skal så skrives f.eks. som

SELECT post_id, forum_id, topic_id
FROM posts p
WHERE post_time =
  (SELECT max(post_time) FROM posts p2
   WHERE p2.topic_id = p.topic_id
   AND p2.forum_id = p.forum_id)
GROUP BY forum_id, topic_id, post_id
ORDER BY post_time DESC
LIMIT 5;

eller

SELECT post_id, forum_id, topic_id FROM posts
NATURAL JOIN
(SELECT forum_id, topic_id, max(post_time) AS post_time
 FROM posts
 GROUP BY forum_id, topic_id) p
ORDER BY post_time
LIMIT 5;


  1. Rails 3 Mysql-problemer

  2. Kan MySQL FIND_IN_SET eller tilsvarende fås til at bruge indekser?

  3. Android:åbning og lukning af SQLite-database

  4. Hvordan tester man, om JDBC-driveren er installeret korrekt, og om DB'en kan tilsluttes?