2015-09-27 2 views
0

У меня есть 4 таблицы:SQL-запрос не генерирует правильные результаты

  1. Клиенты с колоннами - имя пользователя, передать, имя и т.д.
  2. Книги с колоннами - идентификатор, название, автора и т.д.
  3. order_details с колоннами - id_order, идентификатор (книги ид) и т.д.
  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 месяца в будущем. Поэтому, заявив ORDER_DATE < 3MonthsInFuture, вы просите все существующие даты заказа.

+0

Да, это была одна из проблем, в таблицах также были некоторые избыточные данные, которые вызывали эту проблему. Большое спасибо за помощь. –

+0

Добро пожаловать. Если вы удовлетворены моим ответом, отметьте его как «принятый», чтобы вопрос можно было закрыть. – DarkSigma

Смежные вопросы