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
)
Thanxは
programs
を更新した場合 テーブルとセットclose_date
close_date='9999-12-31'
までゼロであるすべてのレコード 、次にORDER BY
よりシンプルになります(そして適切なインデックスを使用するとクエリ全体がより高速になります):
ORDER BY
pi.close_date DESC