我有一個SQL問題。SQL:使用另一個表中的行替換表中的行
我有兩個表:tableA和tableB。這兩個表具有完全相同的結構(簡體版):
rowid : big int
name: character varying
enabled : boolean
兩個表:
tableA contains all the data and their enabled columns are all true.
tableB contains data in tableA that should be turned off (enabled set to false).
我的問題是,我怎麼能寫SQL語句與替換TableA中的所有行tableB中的行(或類似地,對於tableB中存在的所有行,將enabled字段設置爲false)
我使用PostgreSQL。來自其他SQL類型的SQL語句也是受歡迎的。
非常感謝。
@KZhang請注意,「IN(SELECT ...)」縮放比例很差,結果數量很大 - 速度很慢。您最好使用UPDATE ... FROM的連接更新;見歐文的答案。還要小心「IN」如何與空值行爲。 – 2012-08-12 03:12:11