Как итерировать запрос без процедуры? - MySQL
Формулировка задачи:
Добрый день
Помогите убить дракона, процедуры и функции юзать запрещено
Есть 2 таблицы: (т1 и т2)
- Нужно взять "айди" из
т1
, найти его вт2
(их может быть там от 0 до n
) -
Просуммировать
все совпадения вт2
по полю "цена" -
Вернуть результат
- общую сумму для этого "айди". -
Повторить это для всех айди из т1
В КОНЦЕ:
- в конце должно получиться несколько записей с подсчитанной суммой по каждому "айди" - отсортировать записи по этой сумме в любом порядке >>>>>>>>>>>>Решение задачи: «Как итерировать запрос без процедуры?»
textual
Листинг программы
SELECT t1.Id, SUM(t2.price) FROM t1 LEFT JOIN t2 ON t1.Id = t2.t1id GROUP BY t1.Id ORDER BY 2 DESC
Объяснение кода листинга программы
В представленном коде:
t1
иt2
- это имена таблиц в базе данных.t1id
- это имя столбца в таблицеt2
, которое соответствует идентификатору в таблицеt1
.Id
- это имя столбца в таблицеt1
, которое также является идентификатором в этой таблице.price
- это имя столбца в таблицеt2
, который содержит цены.SUM(t2.price)
- это функция агрегирования, которая суммирует все значения столбцаprice
из таблицыt2
, которые соответствуют каждомуId
из таблицыt1
.GROUP BY t1.Id
- это команда, которая группирует результаты поId
из таблицыt1
.ORDER BY 2 DESC
- это команда, которая сортирует результаты по второму столбцу (сумме цен) в порядке убывания. Таким образом, этот SQL-запрос выбирает идентификаторы из таблицыt1
, которые соответствуют записям в таблицеt2
, и для каждого из этих идентификаторов вычисляет сумму значений столбцаprice
из таблицыt2
. Затем результаты сортируются в порядке убывания суммы цен.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д