gpt4 book ai didi

sql - 查询孤立关系

转载 作者:行者123 更新时间:2023-11-29 12:31:09 26 4
gpt4 key购买 nike

我必须清除使用 OmniAuth 的 Rails 应用程序中的孤立关联。为了简单起见,这里是一个精简的场景。

给定两个表:

users:
password_id: INTEGER
<more columns>

passwords:
id: INTEGER NOT NULL
password_digest: VARCHAR

换句话说:有一个兼性的“用户属于_密码”关系。 (有充分的理由说明为什么这种关系不是相反的。)

通常,每个用户都与一个密码相关。但有时用户会被删除,相应的密码也会变得孤立。

是否有一种有效的方法可以通过 Postgres 上的一个 SQL 查询找到所有孤立的密码(换句话说:所有与任何用户无关的密码)?

感谢您的提示!

最佳答案

这种类型的查询称为反连接。最简单的方法是:

SELECT p.*
FROM passwords p
LEFT JOIN users u
ON u.password_id = p.id
WHERE u.<primary key field> IS NULL;

另一种选择是@Politank-Z 提供的NOT EXISTS 方法。它们应该具有基本相同的查询计划。

关于sql - 查询孤立关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29833054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com