Я хочу найти общее количество баллов за каждый D.
Если в P нет экземпляра D, то точки должны возвращаться как 0.
Мои таблицы:
P
code (referencing D.id), c_code (referencing C.id)
D
id, name
C
id
name
points
Мой запрос:
SELECT D.id, SUM(C.points)
FROM D JOIN P ON D.id=P.code JOIN C ON P.c_code=C.id
GROUP BY D.id
HAVING CASE WHEN D.id NOT IN (SELECT *
FROM P p1
WHERE p1.code=D.id) THEN '0' end;