mysql - 字段列表中未知的列名 - MySQL

标签 mysql view mysql-error-1054

在我看来,这确实是一个简单的修复,但我无法弄清楚。这是我正在研究的问题:

  • 创建一个名为 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/

    相关文章:

    php - MySQL 插入损坏

    mysql - 使用左表中的值连接两个表

    mysql - 字段列表中的未知列 MySql 存储过程

    view - UICollectionView嵌入youtube视频仍在另一 View 中播放

    sql - 如何使用变量 where 子句创建 SQL View

    Android Views - 使一个 View 对下面的 View 透明

    mysql - 触发导致 #1054 - 'x' 中的未知列 'where clause'

    MySql (Mariadb) 'Select not exists' 在 sql 文件中不起作用

    mysql - 数据库允许来自 Rails Fixtures 的错误外键

    mysql 从被阻止的表中排除名称