无法根据选择连接更改数据库单元格的值

时间:2015-06-23 16:07:18

标签: sql postgresql

我遇到这种情况:

表A

|id|cgid|description|
---------------------
|00|0002|some text 1|
|01|0001|some text 2|
|02|0002|some text 3|
|03|0003|some text 4|
|04|0005|some text 5|

和表B

|a_id|cpid|
-----------
|  00| 010|
|  00| 312|
|  00| 040|
|  01| 020|
|  01| 312|
|  01| 030|
|  02| 210|
|  02| 312|
|  02| 130|

a_id是表A id的加入列。

现在,我需要将表格B中的所有行cpid=312更改为250,但仅限于表A is 0002的cgid。

我可以使用以下命令选择所有这些条目:

SELECT  *
FROM        A
JOIN        B
ON          A.id = B.a_id
WHERE       A.cgid LIKE '0002'
AND         B.cpid = 312

任何帮助或想法都会非常好。

1 个答案:

答案 0 :(得分:1)

使用INNER JOIN尝试此更新。请参阅Here

UPDATE B
SET B.cpid = 250
FROM A 
WHERE A.id = B.a_id AND A.cgid LIKE '0002' 
     AND B.cpid = 312