Вывести информацию из двух таблиц MySQL
Есть две таблицы. Первая с названием игрушек toys (столбцы ID, NAME), вторая таблица quantity с их количеством (DATE, ID, QUANTITY).
Вопрос: в день, когда купили больше всего игрушек, какую игрушку купили больше всего?
Сложный запрос разбиваю на подзапросы:
1 подзапрос: вывести все записи за день, когда QUANTITY максимальное,
2 подзапрос: в какой из этих двух записей QUANTITY больше,
3 подзапрос: вывести айди когда QUANTITY максимальное,
4 подзапрос: наконец вывести название по айди.
Как это сделать с JOIN?
Ответы (1 шт):
WITH cte AS (
SELECT *, SUM(quantity) OVER (PARTITION BY date) daily
FROM quantity
)
SELECT name
FROM toys
NATURAL JOIN cte
ORDER BY daily DESC, quantity DESC LIMIT 1
Если дней с одинаковой и максимальной продажей несколько - будет взят случайный из них. Аналогично если в этот день несколько товаров проданы в одинаковом максимальном количестве - будет взят случайный из них.