Difference between revisions of "Extension talk:RecentActivity"
From Organic Design wiki
(answered my own question) |
m |
||
Line 17: | Line 17: | ||
Now if we just wanted the last pages that were edited we'd say: | Now if we just wanted the last pages that were edited we'd say: | ||
− | + | {{code|<mysql> | |
+ | SELECT DISTINCT page FROM revision ORDER BY id DESC | ||
+ | </mysql>}} | ||
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 | 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 | ||
Line 45: | Line 47: | ||
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: | 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: | ||
− | < | + | {{code|<mysql> |
SELECT page,min(id) AS minid FROM rev GROUP BY page ORDER BY minid DESC LIMIT 3; | SELECT page,min(id) AS minid FROM rev GROUP BY page ORDER BY minid DESC LIMIT 3; | ||
− | </ | + | </mysql>}} |
Revision as of 09:50, 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:
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: