Mysql 从3个表创建视图时出错
我必须在MySQL中创建一个视图,代码如下: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
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()、…