#1349 - 视图的 SELECT 在 FROM 子句中包含一个子查询
Posted
技术标签:
【中文标题】#1349 - 视图的 SELECT 在 FROM 子句中包含一个子查询【英文标题】:#1349 - View's SELECT contains a subquery in the FROM clause 【发布时间】:2020-02-08 10:05:58 【问题描述】:我需要修改 mysql 代码以传递此错误并获得相同的结果。
我使用 localhost 和 Xampp ..
Apache/2.4.29 (Win32) OpenSSL/1.1.0g php/7.2.1 服务器类型:MariaDB 服务器版本:10.1.30-MariaDB - mariadb.org 二进制分发版 数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407 PhpMyAdmin 版本信息:4.7.4,最新稳定版本:4.9.1CREATE VIEW product_variation_stock_view AS
SELECT
product_variations.product_id AS product_id,
product_variations.id AS product_variation_id,
COALESCE(SUM(stocks.quantity) - COALESCE(SUM(product_variation_order.quantity), 0), 0) AS stock,
CASE WHEN COALESCE(SUM(stocks.quantity) - COALESCE(SUM(product_variation_order.quantity), 0), 0) > 0
THEN true
ELSE false
END in_stock
FROM product_variations
LEFT JOIN(
SELECT stocks.product_variation_id AS id,
SUM(stocks.quantity) AS quantity
FROM stocks
GROUP BY stocks.product_variation_id
) AS stocks USING (id)
LEFT JOIN (
SELECT
product_variation_order.product_variation_id AS id,
SUM(product_variation_order.quantity) AS quantity
FROM product_variation_order
GROUP BY product_variation_order.product_variation_id
) AS product_variation_order USING (id)
GROUP BY product_variations.id
MySQL 说:
#1349 - View 的 SELECT 在 FROM 子句中包含子查询
【问题讨论】:
你用的是哪个mysql版本的workbench,mysql 8没问题 我使用 localhost 和 xampp .. Apache/2.4.29 (Win32) OpenSSL/1.1.0g PHP/7.2.1 |数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407 | phpmyadmin 版本信息:4.7.4,最新稳定版本:4.9.1 请在 phpmyadmin 中使用 select @@version 10.1.30-MariaDB @nbk @nbk 对吗? 【参考方案1】:升级到mysql-8,我的问题就解决了。
要升级 XAMPP 中包含的 MySql(我是在 Windows 系统上完成的):
将您的 Mysql 目录重命名为其他名称。 从 MariaDB 链接 https://downloads.mariadb.org/ 下载 .msi 文件。 运行 .msi。将安装目录更改为 XAMPP 下的 Mysql 位置。 完成后,将旧的 my.ini 从原来的 mysql/bin 目录复制到新的 mysql/bin 目录。 您应该可以从 XAMPP 控制面板启动 Mysql。
我在这里找到了解决方案 http://www.mynotebucket.com/update-mysql-under-xmpp/
【讨论】:
请提交一个针对 MariaDB 的错误。【参考方案2】:您需要升级您的 MySQL。如果由于某种原因您无法这样做,您可以为子查询创建视图并将它们集成到您的查询中。
【讨论】:
以上是关于#1349 - 视图的 SELECT 在 FROM 子句中包含一个子查询的主要内容,如果未能解决你的问题,请参考以下文章
ERROR 1349 (HY000): View 的 SELECT 在 FROM 子句中包含子查询
错误 #1349:View 的 select cluse 在 from 子句中包含子查询
如何在 from 子句中使用子查询创建视图 - Mariadb
带有联合错误的 MySQL 视图 - “视图的 SELECT 包含 FROM 子句中的子查询”
GRANT SELECT ON view TO user using script on SQL developer, 而不是 SELECT * FROM SQL Plus 中的那个视图