2016-11-18 7 views
-1

Следующий запрос в MySQL:MySQL UPDATE: Каждый Производная таблица должна иметь свой собственный псевдоним

UPDATE e_element e1 
INNER JOIN 
(
SELECT DVAL 
FROM e1 
    INNER JOIN e_element e2 
    ON e1.ENT_OID = e2.ENT_OID 
    WHERE 
    e2.META_OID = 336810 AND 
    e1.META_OID = 359462 AND 
    e1.DVAL = '0001-01-01 00:00:00' 
) 
SET e1.DVAL = e2.DVAL; 

Выдает следующую ошибку:

Error Code: 1248 
Every derived table must have its own alias 

Я попробовал несколько различных вариантов с двумя отборных заявлений но я никогда не смогу достичь результата, который я хочу, чтобы скопировать значение из e2 в e1 с учетом этих условий.

+0

Снять скобу '}' и заменить закрывающим кронштейном ')'. – Viki888

+0

В коде, который вы отправили, нет '}', потому что вы заменили его на ')'. Но запуск обновленного запроса больше не вызывает сообщенную ошибку. Либо обновите сообщение об ошибке (если вы все еще получите его), либо закройте вопрос, потому что в его текущем состоянии неясно, что вы спрашиваете. – axiac

ответ

1

У вашего запроса несколько ошибок. , , фигурная скобка, не оговорка on, неприемлемая ссылка на псевдоним таблицы, оговорка where в неправильном месте.

Возможно, вы намерены:

UPDATE e_element e1 INNER JOIN 
     e_element e2 
     ON e1.ENT_OID = e2.ENT_OID 
    SET e1.DVAL = e2.DVAL 
WHERE e2.META_OID = 336810 AND 
     e1.META_OID = 359462 AND 
     e1.DVAL = '0001-01-01 00:00:00'; 
1

Попробуйте этот запрос,

UPDATE e_element e1 
    INNER JOIN e_element e2 
     ON e1.ENT_OID = e2.ENT_OID 
    SET e1.DVAL = e2.DVAL 
WHERE e2.META_OID = 336810 
     AND e1.META_OID = 359462 
     AND e1.DVAL = '0001-01-01 00:00:00'; 

Надеется, что это поможет вам.

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

  • Нет связанных вопросов^_^