0

所以,我有一个包含我的用户的几个条目的表,我需要按他们的 ID 分组并检索表中的最后一个寄存器。

为了优化我的工作,我使用查询创建了一个视图,其中一个 SELECT 在另一个内部按时间戳后代排序,但它失败了。我认为它不能通过视图构建或已经有解决方案?

请,如果有人知道我该怎么做,请分享!

谢谢!

PS:对不起,代码如下:

SELECT 
    dg_users.id,
    dg_users.email,
    dg_maps.id,
    dg_maps.latitude,
    dg_maps.longitude,
    dg_maps.timestamp
FROM
    (SELECT 
        *
    FROM
        dg_maps
    ORDER BY dg_maps.timestamp DESC) dg_maps
JOIN
    dg_geologs ON dg_geologs.map_id = dg_maps.id
JOIN
    dg_users ON dg_users.id = dg_geologs.user_id
GROUP BY dg_geologs.user_id;
4

1 回答 1

2

基于您尚未发布表结构,我只能提供一般性答案。我会说,尽管我认为为这样一个小查询创建视图并没有提供那么多优势,除非您有此处列出的原因(何时使用数据库视图,何时不使用?)。

为了使用最后插入的条目创建视图,您可以执行以下操作:

CREATE VIEW MyView AS
SELECT *
FROM myTable
ORDER BY TIMESTAMP DESC LIMIT 1;

在哪里:

  • MyView是您给视图起的名称
  • myTable是你的桌子
  • 时间戳是带有您的时间戳的字段

你会查询这个:

select * from MyView;
于 2013-09-14T17:17:49.173 回答