如何使用select查询在mysql中编写update语句?
仅当table1.status=100和table1.Todate='0000-00-00 00 00:00'时,我想通过从表2中获取maxdate和minDate来更新表1 和我在下面的查询中尝试的相同,但它在GROUPBY中给出了错误如何使用select查询在mysql中编写update语句?,mysql,Mysql,仅当table1.status=100和table1.Todate='0000-00-00 00 00:00'时,我想通过从表2中获取maxdate和minDate来更新表1 和我在下面的查询中尝试的相同,但它在GROUPBY中给出了错误 update table1 s left join table2 t on s.stCode=t.tsTask set s.stActFrom= min(t.tsDate),s.stActTo=max(t.tsDate) WHERE s.stActTo
update table1 s
left join table2 t
on s.stCode=t.tsTask
set s.stActFrom= min(t.tsDate),s.stActTo=max(t.tsDate)
WHERE s.stActTo='0000-00-00 00:00:00' and s.stStatus=100
group by t.`tsTask`
如果我执行这个查询,我会得到以下错误。
1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“groupby t.tsTask”附近使用的正确语法
有人能告诉我如何编写此更新查询吗?我已经尝试了上述答案。这并没有给我必要的答案。所以我从下面的问题中得到了答案
update s
set s.stActFrom= t.MinDate,
s.stActTo = t.MaxDate
FROM table1 s left join
(
SELECT MinDate = min(tsDate), MaxDate = max(tsDate)
FROM table2
group by `tsTask`
) AS t
WHERE s.stActTo='0000-00-00 00:00:00' and s.stStatus=100
ON s.stCode=t.tsTask
update table1 s left join
(
SELECT min( tsDate ) AS MinDates, max( tsDate ) AS MaxDates, tsTask
FROM table2
group by `tsTask`
) AS t ON s.stCode=t.tsTask
set s.stActFrom= t.MinDate,
s.stActTo = t.MaxDate
WHERE s.stActTo='0000-00-00 00:00:00' and s.stStatus=100
我编辑了您的查询,它工作正常。我将接受这个答案。@Raghuveera:停止编辑答案中给出的查询。如果另一个查询更适合您,请编辑您的问题,并说我最终使用了某某,然后将更正后的查询放在那里。