@maxxieblh

Как сформировать корректный SQL-запрос?

Доброго времени суток! Возникли сложности с формированием SQl-запроса. Допустим есть следующие таблицы в БД:
Profits
5ea282586b883697564490.png
Projects
5ea281b281474452872911.png
Sources
5ea281bec5e3a111459001.png

В таблицу Profits заносятся доходы. В свою очередь есть источник доходов, есть категория источников и есть проекты.
Нужно получить данные в следующем виде:
5ea284c34a27c406180336.png
Я составил следующий запрос:
SELECT
T2.name as name_proj,
SUM(T1.money) as sum_money,
DATE_FORMAT(date_trans, '%Y-%m-%d') as date

FROM `Profits` as T1

INNER JOIN `Projects` as T2
ON T2.id = T1.project_id

WHERE
T1.project_id IN (1, 2)
AND T1.source_id IN (1, 2)

GROUP BY project, date;

В форме на сайте можно выбирать проекты и источники к ним и получить данные с группировкой по проектам и датой транзакции. Но возникла необходимость выбирать помимо самих источников их категории. Т.е. в запросе получается могут быть id источников и id категорий источников, но вот как корректно мне его составить, чтобы запрос был оптимальный?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
trapwalker
@trapwalker
Программист, энтузиаст
Не понимаю в чем у вас проблема. делайте дополнительно join источников, добавляйте все необходимые поля в группировку и селект, а больше ничего не изменится.
При наличии индексов джойны по первичному ключу эффективны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы