mysql - 我可以在普通表的左外连接中使用 SQL 视图吗?
问题描述
这是我的看法
CREATE OR REPLACE VIEW w AS SELECT
orp1.order_product_id,
orp1.order_id,
pov1.weight,
sum(orp1.quantity) AS 'quantity'
FROM
`order_product` orp1,
`order_option` oro1,
`product_option_value` pov1
WHERE
pov1.option_id = 6 AND oro1.product_option_value_id = pov1.product_option_value_id AND orp1.order_product_id = oro1.order_product_id
GROUP BY
orp1.order_product_id,
orp1.order_id,
pov1.weight;
这是查询部分
FROM
`order_product` orp6,
`product` p,
`product_description` pd,
`product_to_category` p2c
LEFT OUTER JOIN w ON orp6.order_id = w.order_id AND orp6.order_product_id = w.order_product_id
但显示的错误是:
orp6.order_id 是未知列
解决方案
切勿在FROM
子句中使用逗号。 始终使用正确、明确、标准 JOIN
的语法。在这
CREATE OR REPLACE VIEW w AS
SELECT orp1.order_product_id, orp1.order_id, pov1.weight,
sum(orp1.quantity) AS 'quantity'
FROM `order_product` orp1 JOIN
`order_option` oro1
ON orp1.order_product_id = oro1.order_product_id JOIN
`product_option_value` pov1
ON oro1.product_option_value_id = pov1.product_option_value_id
WHERE pov1.option_id = 6
GROUP BY orp1.order_product_id, orp1.order_id, pov1.weight;
然后,您可以在子句中添加其他JOIN
s FROM
,例如您要添加的那个。
推荐阅读
- fiware-orion - NGSI 代理线云
- svg - SVG 元素的可点击超链接
- azure - 使用 Azure 数据工厂从私有 s3 实现复制数据
- javascript - 如何使用javascript获取激活的标签名称
- python - 为最小项目重命名应用程序
- java - 如何将具有复合键的键值结构映射到Java中的json对象
- google-app-engine - 如何在谷歌云平台上创建聊天(websocket)服务器
- java - Android:缩放 RadioButton 的背景图像或其他方式使 RadioButton 成为图像
- android - 如何使用 Android Studio 3.1.2 打开 .hprof
- visual-studio - 如何在 VS 安装程序项目中向注册表值设置添加条件