【发布时间】:2013-04-16 10:08:04
【问题描述】:
我在使用 LEFT JOIN 从 PostgreSQL 表中删除记录时遇到问题。
我想删除通过以下查询获得的行:
SELECT * FROM url
LEFT JOIN link_type ON url.link_type = link_type.id
WHERE link_type.id IS NULL
为此,我是这样做的:
DELETE FROM url
USING link_type
WHERE url.link_type = link_type.id AND link_type.id IS NULL
查询有效,但不会删除任何内容,尽管这正是文档中解释的内容:http://www.postgresql.org/docs/current/static/sql-delete.html。
我的问题是由于查询中的IS NULL 还是我遗漏了什么?
【问题讨论】:
-
它不会删除任何内容,因为当
link_type.id为空时,url.link_type = link_type.id不为真,因此这两个条件永远不会同时满足。
标签: postgresql left-join using