В моем последнем вопросе я спросил, как присоединиться к программе, чтобы я всегда получал самую последнюю программу для конкретного клиента.ypercube дал ответ , который, кажется, работает хорошо, но теперь я обеспокоен тем, что когда я добавляю дополнительные условия в общий запрос, он не будет работать так, как ожидалось.
Например, если я добавлю дополнительное условие в нижней части моего запроса:
SELECT c.*, p.*
FROM clients AS c
JOIN programs AS p
ON p.id =
(
SELECT pi.id
FROM programs AS pi
WHERE pi.client_id = c.id
ORDER BY
pi.close_date=0 DESC, pi.close_date DESC
LIMIT 1
)
WHERE p.somefield='somevalue'
Допустим, у клиента есть 2 активные программы, 1 для которых p.somefield='somevalue'
имеет значение true,другой, для которого он ложный, однако, ложный - тот, который был выбран для объединения (у него более поздняя дата закрытия) ... тогда этот клиент вообще не будет выбран, или он просто выберет другого(реже закрытая) программа для него?