2013-12-14 2 views
1

Я хочу обновить table1, принимая max(date) and min(Date) from Table2 для только если table1.status=100 и table1.Todate='0000-00-00 00:00:00' же, что я пытаюсь с следующим запросом, но он дает ошибку в группеКак написать инструкцию по обновлению в mysql с помощью запроса select?

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: STOP пытается изменить запрос, указанный в ответе. Если другой запрос работал лучше для вас, отредактируйте свой вопрос и скажите «Я закончил использовать такое-то» и поместил исправленный запрос. –

+0

хорошо, я сделаю то же самое. что я могу сделать для отредактированного? – Raghuveera

Смежные вопросы