在我看来,这确实是一个简单的修复,但我无法弄清楚。这是我正在研究的问题:
- 创建一个名为 order_item_products 的 View ,该 View 返回 Orders、Order_Items 和 Products 表中的列。 此 View 应从 Orders 表返回以下列:order_id、order_date、tax_amount 和 Ship_date。 此 View 应返回 Order_Items 表中的以下列:item_price、discount_amount、final_price(从商品价格中减去的折扣金额)、数量和 item_total(计算出的商品总计)。 此 View 应返回“Products”表中的“product_name”列
这是我的代码:
CREATE VIEW order_item_products AS
SELECT o.order_id, o.order_date, o.tax_amount, o.ship_date,
oi.item_price, oi.discount_amount, oi.quantity,
(oi.item_price - oi.discount_amount) AS actual_price,
(actual_price * oi.quantity) AS final_price,
p.product_name
FROM orders o
JOIN order_items oi on o.order_id = oi.order_id
JOIN products p ON p.product_id = oi.product_ID;
我收到错误消息字段列表中的未知列“actual_price”。我究竟做错了什么?它不会计算最终价格。我删除了最终的价格语句并执行了查询,因此它允许它成为一列。
感谢任何帮助。
最佳答案
您试图在别名实际存在之前使用它。我认为这应该有效:
CREATE VIEW order_item_products AS
SELECT
o.order_id,
o.order_date,
o.tax_amount,
o.ship_date,
oi.item_price,
oi.discount_amount,
oi.quantity,
(oi.item_price - oi.discount_amount) AS actual_price,
((oi.item_price - oi.discount_amount) * oi.quantity) AS final_price,
p.product_name
FROM orders AS o
JOIN order_items AS oi
ON o.order_id = oi.order_id
JOIN products AS p
ON p.product_id = oi.product_ID
;
关于mysql - 字段列表中未知的列名 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35185473/