我在tabC中有一个选择.我已将该选择应用于tabB.现在我要用这两个选项中的值更新tabA.
在tabC和tabB上选择:
SELECT * FROM tabC
WHERE id_field IN
(SELECT id_field FROM tabB WHERE date_IN = '2011-02-22')
ORDER BY id_field
Run Code Online (Sandbox Code Playgroud)
更新标签:
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'))
Run Code Online (Sandbox Code Playgroud)
UPDATE语句运行没有任何错误,但结果不是我想要的:3个字段对所有行都有相同的值.怎么了?
Gav*_*vin 10
请改用内连接
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5666 次 |
| 最近记录: |