MySQL - View 的 SELECT 在 FROM 子句中包含一个子查询

Posted

技术标签:

【中文标题】MySQL - View 的 SELECT 在 FROM 子句中包含一个子查询【英文标题】:MySQL - View's SELECT contains a subquery in the FROM clause 【发布时间】:2015-01-31 19:20:50 【问题描述】:

我目前正在第一次使用 mysql 和 Views,我很好地进入了它,但是当我执行这个 SQL 语句时,我遇到了一个错误。遗憾的是,我还没有找到解决方案。它说视图包含一个子查询,但我在此语句中看不到或实现任何子查询。

我指的是这个帖子:Adding extra column to view, which is not present in table

那里的人正在使用类似的代码,对他来说它正在工作,不知道为什么它不在我的示例中。我还查看了 *** 并看到了大量相同的错误,但子查询在其他主题中非常明显。

CREATE OR REPLACE VIEW 
`Worker_!view` AS 
SELECT * FROM 
(
   SELECT `Working_!skill`, 
   'asdf_!electrical' charserver 
   FROM `asdf_!electrical` 
   WHERE 1 ORDER BY `id` DESC LIMIT 1 
   UNION 
   SELECT `Working_!skill`, 'fred_!electrical' charserver 
   FROM `fred_!electrical` WHERE 1 ORDER BY `id` DESC LIMIT 1
);

#1349 - View 的 SELECT 在 FROM 子句中包含子查询

【问题讨论】:

MySQL: View with Subquery in the FROM Clause Limitation的可能重复 【参考方案1】:

这在 MySQL 中不起作用。相反,您可以这样做:

CREATE OR REPLACE VIEW `Worker_!view` AS 
   (SELECT `Working_!skill`, 'asdf_!electrical' charserver 
    from `asdf_!electrical` 
    WHERE 1 ORDER BY `id` DESC
    LIMIT 1 
   )
   UNION ALL
   (SELECT `Working_!skill`, 'fred_!electrical' charserver 
    FROM `fred_!electrical`
    WHERE 1
    ORDER BY `id` DESC
    LIMIT 1
  );

【讨论】:

哦该死的对。那是针对 oracle SQL 语言的。很快就会测试它,谢谢!

以上是关于MySQL - View 的 SELECT 在 FROM 子句中包含一个子查询的主要内容,如果未能解决你的问题,请参考以下文章

为啥 MySQL View 和同一个 View 的底层 SELECT 查询返回不同的结果?

MySQL - View 的 SELECT 在 FROM 子句中包含一个子查询

MySQL View 比 Select 慢 20 倍

MYSQL 获取最低值的记录 | View 的 SELECT 包含 FROM 子句中的子查询

MySQL的视图

Mysql - 来自 VIEW 的“EXPLAIN SELECT”正在查看主表的所有行