Как итерировать запрос без процедуры? - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый день Помогите убить дракона, процедуры и функции юзать запрещено

Есть 2 таблицы: (т1 и т2)

  1. Нужно взять "айди" из

    т1

    , найти его в

    т2

    (

    их может быть там от 0 до n

    )
  2. Просуммировать

    все совпадения в

    т2

    по полю "цена"
  3. Вернуть результат

    - общую сумму для этого "айди".
  4. Повторить это для всех айди из т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

Объяснение кода листинга программы

В представленном коде:

  1. t1 и t2 - это имена таблиц в базе данных.
  2. t1id - это имя столбца в таблице t2, которое соответствует идентификатору в таблице t1.
  3. Id - это имя столбца в таблице t1, которое также является идентификатором в этой таблице.
  4. price - это имя столбца в таблице t2, который содержит цены.
  5. SUM(t2.price) - это функция агрегирования, которая суммирует все значения столбца price из таблицы t2, которые соответствуют каждому Id из таблицы t1.
  6. GROUP BY t1.Id - это команда, которая группирует результаты по Id из таблицы t1.
  7. ORDER BY 2 DESC - это команда, которая сортирует результаты по второму столбцу (сумме цен) в порядке убывания. Таким образом, этот SQL-запрос выбирает идентификаторы из таблицы t1, которые соответствуют записям в таблице t2, и для каждого из этих идентификаторов вычисляет сумму значений столбца price из таблицы t2. Затем результаты сортируются в порядке убывания суммы цен.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5