【问题标题】:SQL query not generating proper resultsSQL 查询未生成正确的结果
【发布时间】:2015-09-27 05:02:39
【问题描述】:

我有 4 张桌子:

  1. 具有列的客户 - 用户名、密码、姓名等
  2. 带有列的书籍 - ID、标题、作者等
  3. 带有列的 order_details - id_order、id(books id) 等
  4. 带有列的 user_order - id_order、用户名、密码、电子邮件等

我想打印出包含 order_date、书籍标题、书籍价格和书籍数量列的表格,其中描述了过去 3 个月内特定用户的订单历史记录

我正在使用以下 SQL 查询:

SELECT user_order.Order_Date, books.title, books.Price, Order_Details.Quantity
from Customers INNER JOIN user_order ON Customers.username = user_order.username
INNER JOIN Order_Details ON Order_Details.ID_Order = user_order.ID_Order
INNER JOIN books ON books.id = order_Details.ID
AND Customers.username = '".$username."' 
where user_order.ORDER_DATE < ADD_MONTHS(user_order.ORDER_DATE, 3)

但它给了我比预期更多的行,并且数量超过了预期的输出。

有人可以帮我更正查询吗?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    使用您的ADD_MONTHS 命令,您将获得3 个月后的日期。因此,通过说ORDER_DATE &lt; 3MonthsInFuture,您是在询问所有现有的订单日期。

    【讨论】:

    • 是的,这是问题之一,表中还有一些冗余数据导致了这个问题。非常感谢您的帮助
    • 不客气。如果您对我的回答感到满意,请将其标记为“已接受”,以便关闭问题。
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    相关资源
    最近更新 更多