2016-03-18 5 views
0

Я хочу обновить таблицу со значениями из другой таблицы, которые не всегда существуют. Поэтому мне нужно уйти в другую таблицу. Единственный способ, которым я нашел это:Обновление с помощью leftjoin требует присоединиться к самой таблице обновлений

UPDATE lessonentity update 
SET title=a.test 
FROM lessonentity l 
LEFT JOIN (SELECT 'hoho1' test) a ON(true) 
where l.lessonid=48552 
AND update.lessonid=l.lessonid 

Мой вопрос: Можно ли слева присоединиться к другой таблице, без внутреннего соединительного (где) обновления стола снова?

ответ

1

Да, но не используется явный join. В вашем случае, это достаточно, учитывая, что a имеет только одну строку:

UPDATE lessonentity le 
    SET title = a.test 
    FROM (SELECT 'hoho1' test) a 
    WHERE le.lessonid = 48552; 

Обычно там будет дополнительное условие в WHERE, соединяясь a и le, но это не является необходимым в этом случае из-за стола имеет одну строку.

+0

это ничего не обновит, когда таблица a пуста ... Я хочу установить значение null, если строка в a не существует – wutzebaer