SELECT info.* , usr.nick_name as custom_manager_name ,psinfo.custom_name as custom_introducer_name ,(select contract_code from ps_contract_info where custom_id = info.id and create_time = (select max(create_time) from ps_contract_info psi where psi.custom_id = info.id ) limit 0,1) contract_code ,(select min(start_date) from ps_task_main where contract_code = (select contract_code from ps_contract_info where custom_id = info.id and create_time = (select max(create_time) from ps_contract_info psi where psi.custom_id = info.id ) limit 0,1)) start_date ,EXISTS(SELECT * FROM ps_contract_info coninfo WHERE coninfo.custom_id = info.id and coninfo.contract_status != '10') have_contract FROM ps_custom_info info left join sys_user usr on info.custom_manager = usr.user_id left join ps_custom_info psinfo on info.custom_introducer = psinfo.id