之前是在 SQL Server 遇到這個需求,解法有點不符合 SQL 的概念。
-- 代碼轉換 update A set code = ( select b.newCode from B b where b.oldCode = A.code ); -- 將 B 的代碼寫到 A update A set code = ( select b.code from B b where b.id = A.bid );SQL Server 是用 Subquery,但是在 Subquery 裡是用 outer table name,也就是 A,不是 outer table alias,這是相當反直覺的用法。
而 MySQL 則是用 select 多個 table 的概念。
-- 代碼轉換 update A a, B b set a.code = b.newCode where b.oldCode = a.code; -- 將 B 的代碼寫到 A update A a, B b set a.code = b.code where b.id = a.bid;---
沒有留言:
張貼留言