@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 источников, добавляйте все необходимые поля в группировку и селект, а больше ничего не изменится.
При наличии индексов джойны по первичному ключу эффективны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы