#mysql #sql
#mysql #sql
Вопрос:
У меня есть этот запрос:
SELECT *
FROM ((orders_books
JOIN books ON orders_books.id_book = books.id)
JOIN orders ON orders_books.id_order=orders.id)
JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31';
Результат запроса:https://image.prntscr.com/image/s3ngzzYrSd27mFib9HbLmA.png
Я нахожу количество заказов:
SELECT name, date, SUM(book_price)
FROM ((orders_books
INNER JOIN books ON orders_books.id_book = books.id)
INNER JOIN orders ON orders_books.id_order=orders.id)
INNER JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31';
[Сумма для всех заказов]: https://image.prntscr.com/image/o88Hf4uKSHGuZ2ESUECzuA.png
Но мне нужно найти сумму заказа отдельно для каждого заказа.
Ответ №1:
Как насчет:
SELECT id_order, SUM(book_price)
FROM ((orders_books
INNER JOIN books ON orders_books.id_book = books.id)
INNER JOIN orders ON orders_books.id_order=orders.id)
INNER JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31'
GROUP BY id_order;
Комментарии:
1. @АлександрСавкин glad to help;)
Ответ №2:
SELECT orders.id, SUM(book_price)
FROM ((orders_books
INNER JOIN books ON orders_books.id_book = books.id)
INNER JOIN orders ON orders_books.id_order=orders.id)
INNER JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31'
GROUP BY order_id;
Комментарии:
1. Добро пожаловать в Stackoverflow.com ! Пожалуйста, не только предоставляйте код, добавьте объяснение ключевых частей. Вы пишете ответ не только для OP, но и для всех людей, которые попадут сюда в будущем.
Ответ №3:
Если вам нужна сумма для order.id затем используйте group by orders.id
SELECT orders.id SUM(book_price)
FROM orders_books
INNER JOIN books ON orders_books.id_book = books.id
INNER JOIN orders ON orders_books.id_order=orders.id
WHERE date >='2019-03-1' AND date <= '2019-03-31'
group by orders.id