基于另一个表的值删除条件行

时间:2018-01-15 11:20:01

标签: postgresql join conditional sql-delete

我是PostgreSQL的新手,我遇到条件删除问题。

我有一个数据透视表:: TableA - > Spec_id-STATUS_ID

我有另一个数据透视表:: TableB - > Spec_id-Trend_id

我需要在以下条件的基础上删除TableB上的行:

如果在表B中,Spec_id(TableA中的Status_id == 1)具有Trend_id == 4,则必须擦除行Spec_id-Trend_id。

我知道它是这样的:

DELETE from TableB USING TableA WHERE TableA.Status_id == 1   

但我不知道如何引用与该选择相关的Spec_id。

1 个答案:

答案 0 :(得分:0)

你必须加入两个表:

DELETE FROM TableB
USING TableA
WHERE TableA.Spec_id = TableB.Spec_id
AND TableA.Status_id = 1;