2016-03-18 44 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附加條件,連接ale,但是這是沒有必要在這種情況下,因爲表有一排。

+0

當表a爲空時,這不會更新任何內容...如果a中的行不存在,我想設置null – wutzebaer