Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从3个表创建视图时出错_Mysql_Database_Tableview - Fatal编程技术网

Mysql 从3个表创建视图时出错

Mysql 从3个表创建视图时出错,mysql,database,tableview,Mysql,Database,Tableview,我必须在MySQL中创建一个视图,代码如下: CREATE VIEW dashboard_sales AS ( SELECT o.order_id,o.order_date,o.order_status,op.op_status,oi.oi_qty FROM order o LEFT JOIN order_items oi ON o.order_id = oi.order_id LEFT JOIN

我必须在MySQL中创建一个视图,代码如下:

CREATE VIEW dashboard_sales AS (
    SELECT o.order_id,o.order_date,o.order_status,op.op_status,oi.oi_qty 
    FROM
        order o
    LEFT JOIN
        order_items oi
    ON
        o.order_id = oi.order_id
    LEFT JOIN
        order_payment op
    ON 
        o.order_id = op.order_id
    GROUP BY o.order_id
);
但是当我在phpmyadmin中执行时,我得到一个错误:

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解使用“order o”附近的正确语法 左连接 订购物品 在…上 o、 第4行的订单号=oi


如何解决此问题?

您需要为订单打勾

CREATE VIEW dashboard_sales AS (
    SELECT o.order_id,o.order_date,o.order_status,op.op_status,oi.oi_qty 
    FROM `order` o LEFT JOIN order_items oi
    ON o.order_id = oi.order_id
    LEFT JOIN order_payment op
    ON o.order_id = op.order_id
);

使用关键字作为表名时,应将表放在括号之间

CREATE VIEW dashboard_sales AS (
SELECT o.order_id,o.order_date,o.order_status,op.op_status,oi.oi_qty 
FROM
    [order] o
LEFT JOIN
    order_items oi
ON
    o.order_id = oi.order_id
LEFT JOIN
    order_payment op
ON 
    o.order_id = op.order_id
GROUP BY o.order_id

))

删除CREATEVIEW语句中的括号。您确定这段代码在MySQL上运行时没有任何错误吗?是MySQL中保留的关键字之一。将表名重命名为非保留关键字,或使用反勾号对其进行转义
`
。另外,
groupby
正在使用任何聚合函数,如
MAX()、COUNT()、…