SQL 查询:由于错误 #1349 无法创建视图:帮助重组查询
SQL Query : Cannot create view due to error #1349 : Help to restructure query
我使用一个查询来选择检查类型 "checks" 并在日志文件中查找引用此检查的最新日志条目。
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
此查询有效,但我需要为其创建一个视图。这是我第一次使用视图,所以我对它们了解不多,但我读到这种类型的查询是不可能的...
我的问题是是否有办法以任何方式重组它?
我想另一种解决方案是针对 table 中每一行的特定检查 ID 调用此查询?虽然这听起来很糟糕......而且很慢,但我不确定。
谢谢
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
子句中的子查询,所以这应该没问题。
只要查询正常工作,您就可以从中创建视图。
创建视图 {insertnamehere} 作为
(在此处插入您的查询)
尝试使用和不使用括号。不知道你用的是什么工具*
我使用一个查询来选择检查类型 "checks" 并在日志文件中查找引用此检查的最新日志条目。
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
此查询有效,但我需要为其创建一个视图。这是我第一次使用视图,所以我对它们了解不多,但我读到这种类型的查询是不可能的...
我的问题是是否有办法以任何方式重组它?
我想另一种解决方案是针对 table 中每一行的特定检查 ID 调用此查询?虽然这听起来很糟糕......而且很慢,但我不确定。
谢谢
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
子句中的子查询,所以这应该没问题。
只要查询正常工作,您就可以从中创建视图。
创建视图 {insertnamehere} 作为
(在此处插入您的查询)
尝试使用和不使用括号。不知道你用的是什么工具*