Формулирование запроса на соединение MySql с агрегатами - PullRequest
0 голосов
/ 22 марта 2012

Допустим, у меня есть база данных с 4 таблицами:

  1. пользователи: (личная база данных)
    • ID
    • user_name
  2. уроки: (названия уроков, такие как математика / спортзал и т.д.)
    • ID
    • lesson_name
  3. платежей (содержит платежи с lesson_id и часть платежа [весь платеж разделен на 12 частей])
    • ID
    • lesson_id
    • часть
    • значение
  4. группы: (для массива пользователей на уроки)
    • ID
    • lesson_id
    • user_id

Мой вопрос заключается в том, как запросить базу данных, чтобы получить таблицу со списком всех людей, посещающих, например,. math (или любой другой lesson_id) с их именем (вероятно, LEFT JOIN) и суммой всех платежей за каждый период. Заголовок таблицы для выбранного lesson_id должен выглядеть следующим образом:

имя пользователя | оплата 1 | оплата 2 | ... (3-11) ... | оплата 12

Понятия не имею, как заставить это работать. Может быть, мой подход MySQL не подходит или я должен разделить его на несколько запросов для большей гибкости.

Спасибо за ваше время!

1 Ответ

0 голосов
/ 22 марта 2012
select users.id, users.user_name,lessons.id, lessons.lesson_name,
    (SELECT SUM(value) FROM payments
     WHERE payment.lesson_id = lessons.id)
FROM users
INNER JOIN groups ON (groups.user_id = users.id) 
INNER JOIN lessons ON (lessons.id = groups.lesson_id)
WHERE .....
...