SELECt c.*, p.*FROM clients AS cJOIN programs AS pON 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 )
谢谢 应该去
@Quassnoi
。在类似(但更复杂)的问题中查看他的答案: mysql-group-by-to-display-latest-
result
如果您更新
programs表并将
close_date所有零记录设置为
close_date='9999-12-31',那么您
ORDERBY会更简单(使用适当的索引,整个查询也会更快):
ORDER BY pi.close_date DESC



