Difference between revisions of "Extension talk:RecentActivity"
From Organic Design wiki
m |
(answered my own question) |
||
Line 43: | Line 43: | ||
</pre> | </pre> | ||
What is a query to do that? | What is a query to do that? | ||
+ | |||
+ | I answered my own question - I created test table with those exact items in it and worked out the following query which gives the correct results: | ||
+ | <sql> | ||
+ | SELECT page,min(id) AS minid FROM rev GROUP BY page ORDER BY minid DESC LIMIT 3; | ||
+ | </sql> |
Revision as of 09:49, 16 March 2009
Difficulty with last n created articles query
Lets say we have the following revision table:
id | page ----+---------- 1 | Fred 2 | Sam 3 | Bob 4 | Bob 5 | Fred 6 | Harry 7 | Sam 8 | Mary 9 | Mary 10 | Bob
Now if we just wanted the last pages that were edited we'd say:
SELECT DISTINCT page FROM revision ORDER BY id DESC
But we want the last articles created not just edited, so we need a list of the first revision of each article. Here's the same table with the first revision of each article marked
id | page ----+---------- 1 | Fred * 2 | Sam * 3 | Bob * 4 | Bob 5 | Fred 6 | Harry * 7 | Sam 8 | Mary * 9 | Mary 10 | Bob
And those need to be listed with a limit and descending order as follows (say limit=3):
id | page ----+---------- 8 | Mary 6 | Harry 3 | Bob
What is a query to do that?
I answered my own question - I created test table with those exact items in it and worked out the following query which gives the correct results: <sql> SELECT page,min(id) AS minid FROM rev GROUP BY page ORDER BY minid DESC LIMIT 3; </sql>