【问题标题】:#1349 - View's SELECT contains a subquery in the FROM clause#1349 - 视图的 SELECT 在 FROM 子句中包含一个子查询
【发布时间】: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.1
CREATE 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 对吗?

标签: mysql sql mariadb


【解决方案1】:

升级到mysql-8,我的问题就解决了。


要升级 XAMPP 中包含的 MySql(我是在 Windows 系统上完成的):

  1. 将您的 Mysql 目录重命名为其他名称。
  2. 从 MariaDB 链接 https://downloads.mariadb.org/ 下载 .msi 文件。
  3. 运行 .msi。将安装目录更改为 XAMPP 下的 Mysql 位置。
  4. 完成后,将旧的 my.ini 从原来的 mysql/bin 目录复制到新的 mysql/bin 目录。
  5. 您应该可以从 XAMPP 控制面板启动 Mysql。

我在这里找到了解决方案 http://www.mynotebucket.com/update-mysql-under-xmpp/

【讨论】:

  • 请提交一个针对 MariaDB 的错误。
【解决方案2】:

您需要升级您的 MySQL。如果由于某种原因您无法这样做,您可以为子查询创建视图并将它们集成到您的查询中。

【讨论】:

    猜你喜欢
    • 2014-06-21
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    相关资源
    最近更新 更多