如何使用select查询在mysql中编写update语句?

如何使用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

仅当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='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:停止编辑答案中给出的查询。如果另一个查询更适合您,请编辑您的问题,并说我最终使用了某某,然后将更正后的查询放在那里。