今天在寫代碼的過程中遇到一個問題,就是需要用一張表的數據去更新另一張表某個字段,由於本人之前常用的是MySQL數據庫,記得可以通過join的方式更新。結果發現 postgre數據庫竟然不可以,所以特意記錄一下兩種數據庫,更新數據的腳本
1:MySQL腳本
UPDATE TABLE A JOIN table2 b ON A.busid = b.busid SET A.district = b.district;
2:PostgreSQL腳本
①、單列
UPDATE TABLE A SET ( district ) = ( SELECT district FROM table2 b WHERE A.site = b.site ) WHERE bustype = 1;
②、多列
UPDATE TABLE A SET ( column01, colum02, column03 ) = ( SELECT b.column01, b.column02, b.column03 FROM table2 b WHERE A.COLUMN = b.COLUMN)
③ 、定義行號,刪除重復數據
DELETE FROM tableA WHERE ID IN ( SELECT ID FROM ( SELECT ROW_NUMBER () OVER ( PARTITION BY column01, column02 ), ID FROM tableA ) AS T WHERE T.ROW_NUMBER > 1 );