У меня установлены следующие таблицы в базе данных MySQL:
Client:
id
name
Session:
id
service_id
date
Attendance:
id
client_id
session_id
Service:
id
duration
Клиенты имеют много-много взаимосвязей с сеансами через таблицу посещаемости.
Я пытаюсь написать запрос, который будет возвращать имя каждого клиента и общее количество времени, которое они провели в сессиях, например:
Name Total Time (Mins)
Person A 200
Person B 500
Person C 100
Пока мой запрос выглядит так:
SELECT
(SELECT SUM(services.duration)
FROM services
INNER JOIN sessions
ON sessions.service_id = services.id
INNER JOIN attendances
ON attendances.session_id = session.id
INNER JOIN clients
ON clients.id = attendances.client_id
GROUP BY clients.id) AS total_duration,
client.name
FROM clients
Однако, это не возвращает результатов. Принимая во внимание, что если я выполняю какую-либо часть запроса изолированно, я получаю необходимые данные, а именно:
SELECT name FROM clients
OR
SELECT SUM(services.duration)
FROM services
INNER JOIN sessions
ON sessions.service_id = services.id
INNER JOIN attendances
ON attendances.session_id = session.id
INNER JOIN clients
ON clients.id = attendances.client_id
GROUP BY clients.id
Может кто-нибудь увидеть причину, почему это не будет работать, когда я объединю эти два?