所以,我有一个包含几个用户条目的表,我需要按ID分组并检索表中的最后一个寄存器。
为了优化我的工作,我使用查询创建了一个视图,其中一个SELECT在另一个内部用于按时间戳后代排序,但它失败了。我认为它无法通过观点构建或已经有解决方案?
如果有人知道我该怎么做,请分享!
谢谢!
P.S。:对不起,这是代码:
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;
答案 0 :(得分:2)
基于您尚未发布表格结构,我只能提供一般答案。 我会说虽然我认为为这样一个小查询制作视图并没有提供那么多优势,除非你有理由列出here(When to use database views and when not?)。
为了使用最后插入的条目创建视图,您可以执行以下操作:
CREATE VIEW MyView AS
SELECT *
FROM myTable
ORDER BY TIMESTAMP DESC LIMIT 1;
其中:
您可以通过以下方式查询:
select * from MyView;