Поскольку вам, кажется, нужны отдельные проекты, но не связанные с ними комментарии, есть несколько способов сделать это.
LEFT Join Distinct
SELECT DISTINCT projects.*
FROM projects
LEFT JOIN comments
ON projects.id = comments.projectid
WHERE (( ( comments.commentdate ) BETWEEN Dateadd("m", -3, DATE()) AND DATE() )
) or comments.projectid is null
ВЛЕВО Присоединиться к группе от
SELECT projects.id,
projects.fielda,
[....]
FROM projects
LEFT JOIN comments
ON projects.id = comments.projectid
WHERE (( ( comments.commentdate ) BETWEEN Dateadd("m", -3, DATE()) AND DATE() )
) or comments.projectid is null
GROUP BY
projects.id,
projects.fielda,
[....]
В пункте
SELECT *
FROM projects
WHERE id IN (SELECT projectid
FROM comments
WHERE (( ( comments.commentdate ) BETWEEN
Dateadd("m", -3, DATE()) AND DATE()
)))
Пункт существует
SELECT *
FROM projects
WHERE EXISTS (SELECT *
FROM comments
WHERE ( comments.commentdate ) BETWEEN
Dateadd("m", -3, DATE()) AND DATE()
AND ( projects.id = comments.projectid ))
OR NOT EXISTS (SELECT *
FROM comments
WHERE projects.id = comments.projectid)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ В ИННЕЙНУЮ ПЛАТУ С СОЮЗОМ В ЛЕВОЕ СОЕДИНЕНИЕ
SELECT *
FROM projects
INNER JOIN (SELECT DISTINCT projectid
FROM comments
WHERE (( ( comments.commentdate ) BETWEEN
Dateadd("m", -3, DATE()) AND DATE()
))) comment
ON projects.id = comment.projectid
UNION ALL
SELECT *
FROM projects
LEFT JOIN comments
ON projects.id = comment.projectid
WHERE
comment.projectid is null