PostgreSQL:使用从tabB和tabC中选择的内容更新tabA
我在tabC有一个选择。我已将该选择应用于tabB。现在我要用这两个选项中的值更新tabA 在选项卡C和选项卡B上选择:PostgreSQL:使用从tabB和tabC中选择的内容更新tabA,postgresql,select,Postgresql,Select,我在tabC有一个选择。我已将该选择应用于tabB。现在我要用这两个选项中的值更新tabA 在选项卡C和选项卡B上选择: SELECT * FROM tabC WHERE id_field IN (SELECT id_field FROM tabB WHERE date_IN = '2011-02-22') ORDER BY id_field 更新tabA: UPDATE tabA SET field_1 = tabC.field_1, field_2 = tabC.field_2, fi
SELECT * FROM tabC
WHERE id_field IN
(SELECT id_field FROM tabB WHERE date_IN = '2011-02-22')
ORDER BY id_field
更新tabA:
UPDATE tabA
SET field_1 = tabC.field_1, field_2 = tabC.field_2, field_2 = tabC.field_2
FROM tabC WHERE tabA.id_field IN
(SELECT tabC.id_field FROM tabC WHERE tabC.id_field IN
(SELECT id_field FROM tabB WHERE date_IN = '2011-02-22'))
UPDATE语句运行时没有任何错误,但结果不是我所期望的:这3个字段的所有行的值都相同。怎么了?改用内部联接
UPDATE tabA
SET field_1 = tabC.field_1,
field_2 = tabC.field_2,
field_3 = tabC.field_3
FROM tabC
INNER JOIN tabB ON tabC.id_field = tabB.id_field AND tabB.date_IN = '2011-02-22'
WHERE tabA.id_field = tabC.id_field;