SQL — UPDATE 與 JOIN

事情的緣由是公司程式出 bug,造成某兩個 table 中應該要相同的某個欄位有了差異,因此想用一條 SQL 就解決這問題。

SELECT * FROM ... JOIN ... ON ... WHERE ...

以上是一般 SELECT 的方法,而實際上只要將 SELECT FROM 改為 UPDATE,並將中間加入 SET 的修改欄位。

UPDATE table_A A JOIN table_B B ON A.shop_id = B.shop_id
SET A.category_id = B.cat_id
WHERE A.category_id != B.cat_id;

以上指令就能將 table_A, table_B 中類別不一樣的資料使用 table_B 的資料為準。