😎Ребята в комментариях дали правильные ответы (круть!), тут предложу чуть оптимизированные вариации:
1) JOIN
Один подзапрос + один джойн
SELECT c.client_id
FROM clients c
LEFT JOIN (
SELECT DISTINCT client_id
FROM documents
WHERE valid_to = '9999-12-31'
) t1
ON c.client_id = t1.client_id
WHERE t1.client_id IS NULL
2) IN
Идём от обратного и исключаем
SELECT client_id
FROM clients
WHERE client_id NOT IN (
SELECT client_id
FROM documents
WHERE valid_to = '9999-12-31'
)
3) NOT EXISTS
Здесь можно оптимизировать, используя top/limit и константу.
Как это работает?
Если условие подзапроса соблюдается, мы берем просто цифру 1 вместо полей (не нужно лишний раз их вытаскивать) + одной строки нам достаточно, чтобы понять, что данные есть или их нет.
SELECT client_id
FROM clients c
WHERE NOT EXISTS (
SELECT 1
FROM documents d
WHERE c.client_id = d.client_id
AND valid_to = '9999-12-31'
LIMIT 1
)
Также важно внимательно читать задание и выводить то, что требуется (только id клиентов).
Решившим ребятам респект, остальные подключайтесь тоже!