當需要根據另一張表的欄位值更新本表資料時,使用 INNER JOIN 寫法最為直觀高效:
UPDATE user_bank a INNER JOIN bank AS b ON a.bank_code = b.bank_code SET a.bank_type = b.id WHERE a.bank_type IS NULL AND a.id = 1650;
執行更新前,建議先執行以下查詢確認影響範圍:
-- 確認目標記錄 SELECT * FROM user_bank WHERE id = 1650; -- 確認待更新筆數 SELECT * FROM user_bank WHERE bank_type IS NULL; SELECT COUNT(*) FROM user_bank WHERE bank_type IS NULL; -- 確認關聯表資料 SELECT * FROM bank; SELECT * FROM bank WHERE bank_code = '03010000';
a、b)簡化欄位引用。SET 子句中直接引用關聯表欄位(b.id)。WHERE 條件同時限制主表與關聯條件,確保精準更新。