postgresql – 如何使用外部连接删除行
发布时间:2020-12-13 16:32:33 所属栏目:百科 来源:网络整理
导读:使用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.
使用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 查询工作,但不删除任何东西,虽然这正是在doc:http://www.postgresql.org/docs/current/static/sql-delete.html中解释的. 我的问题是由于查询中的IS NULL还是我错过了什么?
好工作,太阳小的建议:使用EXISTS / NOT EXISTS时,不需要SELECT *.一个常见的约定(
docs)就是像这样写一个SELECT 1:
DELETE FROM url WHERE NOT EXISTS ( SELECT 1 FROM link_type WHERE url.link_type = link_type.id ); 在功能上,两种方式都有效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |