#1349-视图的SELECT在FROM子句中

时间:2019-10-10 22:10:58

标签: mysql sql mariadb

我需要修改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-视图的SELECT在FROM子句中包含一个子查询

2 个答案:

答案 0 :(得分:0)

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


  

要升级XAMPP中包含的MySql(我在Windows系统上做到了):

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

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

答案 1 :(得分:0)

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