Я уверен, что ответ уже есть, но я изо всех сил пытаюсь применить достаточно похожие посты к моей конкретной проблеме c. Пожалуйста, потерпите меня.
У меня есть таблица заданий, которая ссылается на себя с помощью поля id_parent_job. Дочерние вакансии имеют несколько вакансий.
id id_parent_job is_active num_openings
1 1 y NULL
2 1 n 15
3 1 y 10
4 4 y NULL
5 4 n 13
6 6 y NULL
7 6 y 15
8 6 n 15
9 6 y 15
Учитывая идентификатор родительской работы, я хочу найти 2 цифры: сумму вакансий и сумму активных вакансий. Вот желаемые результаты. Мне нужна помощь с запросом.
job 1: 25 openings, 10 active openings
job 4: 13 openings, 0 active openings
job 6: 45 openings, 30 active openings
Ниже приведен запрос, с которым я работаю, но он приводит к дублированию. Это является (может быть?) Хорошим объяснением проблемы.
SELECT jobs.id, SUM(childjobs.num_openings), SUM(activechildjobs.num_openings) FROM jobs
LEFT JOIN jobs AS childjobs
ON childjobs.id_parent_job = jobs.id
AND childjobs.id != jobs.id
LEFT JOIN jobs AS activechildjobs
ON activechildjobs.id_parent_job = jobs.id
AND activechildjobs.id != jobs.id
AND activechildjobs.is_active = 'y'
WHERE jobs.id = 1
Вот неверные результаты.
job 1: 25 openings, 20 active openings
job 4: 13 openings, 0 active openings
job 6: 90 openings, 90 active openings
Работы с более чем одним ребенком считая детей несколько раз.