我使用一个选择支票类型的查询"检查"并查看日志文件以查找引用此检查的最新日志条目。
SELECT checks.*, logs.last_completed_on, logs.completed_by
FROM checks INNER JOIN
(
SELECT check_id, MAX(completed_on) AS last_completed_on,
completed_by FROM checks_log GROUP BY check_id
) logs
ON checks.id = logs.check_id
此查询有效但我需要为它创建一个视图。这是我第一次使用视图,所以我对它们了解不多,但我读到这种类型的查询无法实现......
我的问题是,是否有办法以任何方式重组它?
我想另一个解决方案是在表中的每一行的特定检查ID上调用此查询?虽然这听起来很糟糕......而且很慢,但我不确定。
谢谢
答案 0 :(得分:0)
MySQL中的视图无法处理from
子句中的子查询。所以,你需要一些不同的逻辑。
此版本应该有效:
SELECT c.*, cl.completed_on as last_completed_on, cl.completed_by
FROM checks c INNER JOIN
checks_log cl
ON c.check_id = cl.check_id
WHERE cl.completed_on = (SELECT MAX(cl2.completed_on)
FROM checks_log cl2
WHERE cl2.check_id = cl.check_id
);
MySQL确实允许SELECT
和FROM
子句中的子查询,所以这应该没问题。
答案 1 :(得分:0)
只要查询工作正常,您就可以从中创建视图。
创建视图{insertnamehere} as
(insertyourqueryhere)
尝试使用和不使用括号。我不知道你正在使用什么工具*