Вам не нужно предложение GROUP BY, чтобы написать этот запрос.
Сначала давайте посмотрим на активных клиентов и их проекты.
-- All active customers
SELECT c.customer_id, c.name
FROM customers c
WHERE c.active = 1;
customer_id name
--
1 customer I
-- All active customers and their projects
SELECT c.customer_id, c.name, p.project_id, p.project_name
FROM customers c
INNER JOIN projects p ON (p.customer_id = c.customer_id)
WHERE c.active = 1;
customer_id name project_id project_name
--
1 customer I 1 project I
1 customer I 2 project II
Только один активный клиент, у которого естьдва проекта.
Теперь давайте рассмотрим проекты раздела 1.
-- All projects from section 1
SELECT ps.project_id, ps.section_id
FROM project_sections ps
WHERE ps.section_id = 1;
project_id section_id
--
2 1
-- All projects from section 1, including project name
SELECT ps.project_id, p.project_name, ps.section_id
FROM project_sections ps
INNER JOIN projects p ON (p.project_id = ps.project_id)
WHERE ps.section_id = 1;
project_id project_name section_id
--
2 project II 1
Всего один проект раздела 1.Теперь сложите все вместе.
-- All active customers and their projects from section 1
SELECT c.customer_id, c.name, p.project_id, p.project_name, ps.section_id
FROM customers c
INNER JOIN projects p ON (p.customer_id = c.customer_id)
INNER JOIN project_sections ps ON (p.project_id = ps.project_id)
WHERE c.active = 1 AND ps.section_id = 1;
customer_id name project_id project_name section_id
--
1 customer I 2 project II 1
Это то, что я ожидал.
Позже.,.
Я вижу, что вы изменили данные.Если я внесу те же самые изменения здесь, то мой последний запрос выше не возвращает строк.Я думаю, это то, что вы сказали, что ожидали.(И с вашими изменениями в данных, это то, что я тоже ожидал).