2015-06-11 8 views
0

Как мы запускаем эти типы запросов в mysql?mysql update join query

Помогите мне вычитать эти типы запросов, как мы запускаем в mysql. обновить присоединиться запрос

UPDATE file_master t1,users t2 SET 
    t1.Status = "cancel", 
    t1.is_credit_revers=1, 
    t1.is_credit_reversed=1, 
    t1.t_reversal=t1.credit, 
    t2.credit=t1.credit+ 
    (
     select sum(t1.credit) from file_master where FileID in(7,6,5) 
    ) 
WHERE t1.FileID in(7,6,5) 
and t1.CRN=t2.id 
and t1.CRN=1 ; 

1093 - Таблица «t1» указан дважды, так как мишень для «UPDATE» и в качестве отдельного источника данных

ответ

1

объектов MySQL для обновления таблицы, которая также находится в дополнительном запросе

Вы можете скрыть вспомогательный запрос в другом подзапросе, чтобы обойти это.

Как таковой попробовать что-то вроде этого: -

UPDATE file_master t1 
INNER JOIN users t2 
ON t1.CRN = t2.id 
CROSS JOIN 
(
    SELECT credit_sum 
    FROM 
    (
     SELECT SUM(credit) AS credit_sum 
     FROM file_master 
     WHERE FileID IN(7,6,5) 
    ) t3 
) t4 
SET t1.Status = "cancel", 
t1.is_credit_revers = 1, 
t1.is_credit_reversed = 1, 
t1.t_reversal = t1.credit, 
t2.credit = t1.credit + t4.credit_sum 
WHERE t1.FileID in(7,6,5) 
AND t1.CRN = 1 ;