2015-09-27 65 views
0

我有4个表:SQL查询不产生正确的结果

  1. 客户提供列 - 用户名,传球,姓名等
  2. 书籍的列 - ID,标题,作者等
  3. 与列ORDER_DETAILS - id_order,身份证(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) 

但给我多于预期的数量,数量超过预期产量。

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

回答

0

使用您的ADD_MONTHS命令,您将获得3个月的日期。因此,通过说​​,您要求所有现有订单日期。

+0

是的,这是问题之一,表中有一些冗余数据导致了这个问题。非常感谢您的帮助 –

+0

非常欢迎。 如果您对我的回答满意,请将其标记为“已接受”,以便可以关闭问题。 – DarkSigma