Вывести информацию из двух таблиц MySQL

Есть две таблицы. Первая с названием игрушек toys (столбцы ID, NAME), вторая таблица quantity с их количеством (DATE, ID, QUANTITY).

Вопрос: в день, когда купили больше всего игрушек, какую игрушку купили больше всего?

Сложный запрос разбиваю на подзапросы:

1 подзапрос: вывести все записи за день, когда QUANTITY максимальное,

2 подзапрос: в какой из этих двух записей QUANTITY больше,

3 подзапрос: вывести айди когда QUANTITY максимальное,

4 подзапрос: наконец вывести название по айди.

Как это сделать с JOIN?


Ответы (1 шт):

Автор решения: Akina
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

Если дней с одинаковой и максимальной продажей несколько - будет взят случайный из них. Аналогично если в этот день несколько товаров проданы в одинаковом максимальном количестве - будет взят случайный из них.

→ Ссылка