选择没有指针的对象

时间:2013-08-17 07:20:12

标签: sql database postgresql

我有2个名为ContentStateHashedFile的实体。 ContentState的每条记录都与HashedFile相关联,但该关系不是唯一的,因此ContentStateunique="false"和{{1}有多对一的关系(因此,2个或更多not-null="true"个记录可以指向相同的ContentState)。 我想要做的是从数据库中删除HashedFile并检查没有ContentState连接到它们的HashedFile条记录&删除那些。什么是PostgreSQL查询?

表格列如下:

ContentStates

CONTENT_STATES

id, hashedFileId

HASHED_FILES

1 个答案:

答案 0 :(得分:3)

您可以使用not exists构建

delete HASHED_FILES as hf
where
    not exists (select * from CONTENT_STATES as cs where cs.HashedFileId = h.Id)