2013-12-14 3 views
1

는 제가 쿼리를 다음과 같이 노력하고 있습니다 경우에만 table1.status=100table1.Todate='0000-00-00 00:00:00' 같은 일에 대한 max(date) and min(Date) from Table2을 복용하여 표를 업데이트 할하지만 난 다음 오류가 발생하고이 쿼리를 실행하는 경우는어떻게 select 쿼리로 mysql에서 update 문을 쓸 수 있습니까?

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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group by t. tsTask ' at line 1

이 업데이트 쿼리를 어떻게 작성할 수 있습니까?

답변

0

위의 답변을 시도했습니다. 그게 나에게 필요한 답을주지 못했다. 그래서 다음 쿼리에서 대답을 가지고있다.

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 
0
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 
+0

쿼리를 편집 한 결과 정상적으로 작동합니다. 나는이 대답을 받아 들일 것이다. – Raghuveera

+0

@Raghuveera : 답안에서 주어진 질의를 편집하려고 시도하는 것을 멈 춥니 다. 다른 쿼리가 잘 작동하면 질문을 수정하고 "그런 식으로 끝났습니다"라고 말하고 거기에 수정 된 쿼리를 넣으십시오. –

+0

좋아요. 나는 똑같이 할 것입니다. 내가 편집 한 것에 대해 무엇을 할 수 있습니까? – Raghuveera

관련 문제