a.first_reg_time as firstRegTime, a.finish_time as finishTime, a.problem_desc as problemDesc, a.`status`
FROM mp_appeal a
LEFT JOIN (
/* 先找出每个诉求的最后一次登记的第一个人 */
SELECT t3.*
FROM (
/* 找出每个诉求的最后一次登记记录 */
SELECT t.*
FROM (
SELECT *, ROW_NUMBER() OVER(PARTITION BY appeal_id
ORDER BY create_time DESC) AS row_index
FROM mp_appeal_reg reg
WHERE 1 = 1
) t
WHERE t.row_index = 1
) t2
LEFT JOIN (
/* 找出每次登记的第一张用户 */
SELECT *
FROM mp_appeal_visitor vis
WHERE vis.sort = 1
)t3 ON t2.id = t3.appeal_reg_id
/* 先找出每个诉求的最后一次登记的第一个人 */
SELECT t3.*
/* 找出每个诉求的最后一次登记记录 */
FROM (SELECT t.* FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY appeal_id ORDER BY create_time DESC) AS row_index FROM mp_appeal_reg reg) t WHERE t.row_index = 1) t2
/* 找出每次登记的第一张用户 */
LEFT JOIN (SELECT t.* FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY cardno ORDER BY sort ASC) AS row_index FROM mp_appeal_visitor vis) t WHERE t.row_index = 1) t3 ON t2.id = t3.appeal_reg_id
) b ON a.id = b.appeal_id
LEFT JOIN blade_dict_biz biz ON a.dispute_id = biz.id