其中,tml是一个表 tmal是一个子查询的结果(返回多条数据),需要从tml内获取到media_id,
需要从tmal中经过时间筛选、media_id筛选 后,选择id最大的数据,对tml内对应的相同时间,media_id进行更新。
tmal筛选后会得到多条数据,现在的写法无论如何都是按照子查询结果中id最小的数据进行更新的,现在求帮忙改写成按子查询中id最大的数据进行更新,感谢感谢
UPDATE t_middlelog AS tml,
(
SELECT
*
FROM
t_machinelog
WHERE
TO_DAYS(NOW()) - TO_DAYS(log_date) = 1
ORDER BY id DESC
) AS tmal
SET tml.machine_guid = tmal.machine_guid,
tml.mac_id = tmal.macid,
tml.log_ip = tmal.log_ip,
tml.media_type = tmal.channel_type,
tml.media_name = tmal.channel_name,tml.detail0 = tmal.tmal.detail0,
tml.detail1 = tmal.tmal.detail1,
tml.detail2 = tmal.tmal.detail2,
tml.edition0 = tmal.tmal.edition0,
tml.edition1 = tmal.tmal.edition1,
tml.edition2 = tmal.tmal.edition2,
tml.org_id=tmal.id
WHERE tml.media_id = tmal.channel_id and TO_DAYS(NOW()) - TO_DAYS(tml.log_date) = 1;