Null
用選定單元格上另一個表格的數據填充一個表格
我在用另一個表中的數據填充一個表中的空單元格時遇到問題。
我有一個包含使用者電子郵件的表格 - 有些欄位是空的,有些已經包含電子郵件。我收集了表格中沒有電子郵件的使用者的電子郵件列表。我將把它作為一個單獨的表導入,然後更新一個現有的表。所以要證明:
現有表(
USERS
):ID Email 1 aaa@bbb.com 2 NULL 3 bbb@bbb.com 4 NULL 5 NULL
第二個表 (
MYTABLE
) 具有完全相同的結構,但它只有ID
和原始表Emails
中的使用者NULL
。我將此用作測試,但發現如果該使用者存在於兩個表中,該程式碼將覆蓋電子郵件,我不希望這樣:
UPDATE users SET users.email = (SELECT mytable.email FROM mytable WHERE mytable.id = users.id) WHERE EXISTS (SELECT mytable.email FROM mytable WHERE mytable.id = users.id);
那麼是否可以僅更新具有 NULL 值的單元格?
這會奏效;
UPDATE users SET users.email = (SELECT mytable.email FROM mytable WHERE mytable.id = users.id) WHERE EXISTS (SELECT mytable.email FROM mytable WHERE mytable.id = users.id) AND users.email IS NULL;