我有一个修订数据库表,在网站(webId)下有多个页面修订版(pageId)。我想编写一个查询来获取网站的最新修订版。例如,下表显示了两个带有id的文件1和2,现在我想得到修订号101和104,因为它们是各自页面的最新版本。我正在使用 mysql
+----+---------+-------------+---------------------+-------+---------------------+
| id | userId | webId |revisionCont | pageId| dateUpdated |
+----+---------+-------------+---------------------+-------+---------------------+
| 100| 1 | 2 | some text | 1 | 2014-01-07 08:00:00 |
| 101| 1 | 2 | some text | 1 | 2014-01-07 08:01:00 |
| 103| 2 | 2 | some text | 2 | 2014-01-07 08:15:32 |
| 104| 2 | 2 | some text | 2 | 2014-01-07 09:10:32 |
+----+---------+-------------+---------------------+-------+---------------------+
我无法弄清楚我该怎么做?有人可以指导我吗?
答案 0 :(得分:4)
试试这个
SELECT max(id) id FROM revision
GROUP BY pageId
输出:
ID
104
101
编辑:如果您需要过滤或订购输出,则只需添加ORDER BY dateUpdated DESC
答案 1 :(得分:3)
SELECT MAX(id) id FROM revision GROUP BY pageId
应该这样做。
答案 2 :(得分:3)
要获得完整的行,请执行以下操作:
SELECT * FROM revision WHERE Id IN (
SELECT MAX(id) FROM revision GROUP BY pageId ORDER BY dateUpdated DESC
)
答案 3 :(得分:2)
以下是查询示例:
SELECT id FROM revision GROUP BY pageId ORDER BY dateUpdated DESC
它将获取每个pageId的所有记录ID(101和104),按dateUpdated(降序)排序