查找一个表中存在于另一表的多个列中的值

发布于 2025-01-11 17:29:10 字数 480 浏览 0 评论 0原文

我们有一个 CUSTOMER 表和一个 ACCOUNTS 表(两个表中都没有主键或外键 - 长话短说!)

我的数据是这样的:

在此处输入图像描述

帐户可以有 1、2 或 3 个所有者。 我需要找到哪些客户未与任何帐户关联。

我尝试过的:

query

但查询实际上需要很长时间 - 即使我限制子查询返回前 10 行。

我希望在搜索中看到丹尼、艾玛和方的返回

We have a table of CUSTOMER and a table of ACCOUNTS (there is no primary or foreign key in either table - long story!)

My data is such:

enter image description here

Accounts can 1, 2 or 3 owners.
I need to find which CUSTOMERS aren't associated with any account.

What I have tried:

query

But the query is literally taking forever - even when I restrict the subquery to return the top 10 rows.

I want to see returned in my search Danny, Emma and Fang

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对不⑦ 2025-01-18 17:29:10

您忘记将子查询与主查询相关联。您的查询显示:“如果帐户表中没有行,请向我提供所有客户。”它应该显示“向我提供帐户表中没有行的所有客户”。

select cutomername
from customer c
where not exists
(
  select null
  from accounts a
  where c.customername in (a.owner1, a.owner2, a.owner3)
);

You forgot to relate the subquery to your main query. Your query says: "Give me all customers provided there is no row in the accounts table." It should say "Give me all customers for which there is no row in the accounts table."

select cutomername
from customer c
where not exists
(
  select null
  from accounts a
  where c.customername in (a.owner1, a.owner2, a.owner3)
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文