Mysql 获取选择多个表时的最新行
我有一个疑问:Mysql 获取选择多个表时的最新行,mysql,sql,greatest-n-per-group,Mysql,Sql,Greatest N Per Group,我有一个疑问: SELECT DISTINCT enc.id, enc.cus_id, enc.createdon, enc.status, enc.segment, enc_task.orderid, enc_task.taskid, enc.currentstep, enc.groupid, enc.fdprotocol, enc_task.linkfile, cus.fname, cus.lname, login.first_name, login.last_
SELECT DISTINCT
enc.id, enc.cus_id, enc.createdon, enc.status, enc.segment, enc_task.orderid,
enc_task.taskid, enc.currentstep, enc.groupid, enc.fdprotocol,
enc_task.linkfile, cus.fname, cus.lname, login.first_name, login.last_name,
login.username, login.user_code, login.id as assigned_id, fp.protocol,
init.typename, table4.allowtotal
FROM
mob_encounters enc
JOIN mob_encounters_task enc_task ON enc_task.encounterid=enc.id
JOIN mob_customer cus ON cus.id=enc_task.cus_id
JOIN mob_login login ON login.id=enc.createdby
LEFT JOIN mob_protocol_type fp ON fp.id=enc.fdprotocol
LEFT JOIN initiation_type init ON init.id=enc.groupid
LEFT JOIN mob_table4 table4 ON table4.encid=enc.id
GROUP BY
enc.id
查询正在运行,但我需要它返回
enc\u任务的最新一行。执行此匹配时遇到id
:enc\u任务。遇到id=enc.id
。有可能吗?子查询可能会执行您正在查找的操作:
SELECT DISTINCT
enc.id, enc.cus_id, enc.createdon, enc.status, enc.segment, enc_task.orderid, enc_task.taskid,
enc.currentstep, enc.groupid, enc.fdprotocol, enc_task.linkfile, cus.fname,
cus.lname, login.first_name, login.last_name, login.username, login.user_code,
login.id as assigned_id, fp.protocol, init.typename, table4.allowtotal
FROM
mob_encounters enc
JOIN
(select encounterid, orderid, taskid, linkfile from mob_encounters_task order by [FIELD THAT DESIGNATES LATEST VALUE] desc) AS enc_task ON enc_task.encounterid=enc.id
JOIN
mob_customer cus ON cus.id=enc_task.cus_id
JOIN
mob_login login ON login.id=enc.createdby
LEFT JOIN
mob_protocol_type fp ON fp.id=enc.fdprotocol
LEFT JOIN
initiation_type init ON init.id=enc.groupid
LEFT JOIN
mob_table4 table4 ON table4.encid=enc.id
GROUP BY
enc.id
谢谢这就是我想做的!我只是注意到有些字段没有返回,比如:orderid、taskid。但是其他的是,知道为什么吗?检查子查询本身;返回的行中是否有值?我的第一个想法是这是一个数据问题,或者我可能有错误的字段名。