gpt4 book ai didi

mysql - 转换子查询加入创建 View

转载 作者:可可西里 更新时间:2023-11-01 08:36:59 24 4
gpt4 key购买 nike

我有一个嵌套的 SQL 查询:

SELECT * 
FROM
(
SELECT *
FROM asset_status
ORDER BY session_id DESC
) tmp
GROUP BY asset_id, workflow_element_id

我想从这个查询创建一个 View ,但 MySQL 似乎不允许在 View 中使用子查询。如何将其转换为连接?

最佳答案

SQL Server 允许在 View 中使用子查询。你不能做的是 SELECT *GROUP BY a, b

您是否尝试过...(我假设这不是您的全部查询,因此我将进行尽可能少的更改)

SELECT asset_id, workflow_element_id
FROM
(
SELECT *
FROM asset_status
-- ORDER BY session_id DESC (Removed as innefective in a view)
) tmp
GROUP BY asset_id, workflow_element_id


此外,请注意内部查询中的 ORDER BY 是无效的(甚至可能是不允许的),因为外部查询随后可以对其重新排序(它不会总是以不同的顺序返回,但此布局不能保证您似乎想要的顺序)。即使在外部查询中,它也可能导致您的结果在使用 View 时是有序的,但再次允许优化器对结果重新排序。除非 ORDER BY 在使用 View 的查询中,否则永远不会绝对保证...

SELECT * FROM view ORDER BY x


最后,您将此标记为 LEFT JOIN 问题。如果您有更完整的代码示例,我相信有人会建议另一种布局。但是我现在要出去几天。祝你好运! :)

关于mysql - 转换子查询加入创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com