SQL 存在命令

发布于 01-15 16:31 字数 375 浏览 4 评论 0原文

我有一个想要优化的查询。我想尝试使用“EXISTS”命令,而不是“IN”命令,但每当我尝试实现“EXISTS”时,它都会返回比应有的行数更多的行。

使用“IN”查询:

SELECT count(*)
FROM echosign_devbox.participation as p
left join echosign_devbox.agreement as a
on p.agreement_id=a.agreement_id
where a.status not in ('SIGNED', 'ABANDONED', 'EXPIRED', 'ABANDONED_BEFORE_SEND');

有谁知道我应该如何更改,只是为了使用“EXISTS”命令?谢谢!

I have a query that I want to optimize. I want to try with 'EXISTS' command, instead of 'IN' command, but whenever I try to implement 'EXISTS', it returns more rows than it should.

Query with 'IN':

SELECT count(*)
FROM echosign_devbox.participation as p
left join echosign_devbox.agreement as a
on p.agreement_id=a.agreement_id
where a.status not in ('SIGNED', 'ABANDONED', 'EXPIRED', 'ABANDONED_BEFORE_SEND');

Does anyone know how should I change, just to be with 'EXISTS' command? Thanks!

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

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

发布评论

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

评论(1

只想待在家2025-01-22 16:31:21
SELECT  count(*)
    FROM  echosign_devbox.participation as p
    WHERE NOT EXISTS ( SELECT 1
            FROM echosign_devbox.agreement as a
            WHERE  p.agreement_id = a.agreement_id
              AND  a.status IN ('SIGNED', 'ABANDONED', 'EXPIRED', 'ABANDONED_BEFORE_SEND' ) );

a 需要 INDEX(agreement_id, status)

这会给出“正确”答案吗?

SELECT COUNT(*)
    FROM echosign_devbox.agreement
    WHERE status NOT IN ('SIGNED', 'ABANDONED', 'EXPIRED', 'ABANDONED_BEFORE_SEND')

表之间有什么关系? 1:1? 1:很多?

SELECT  count(*)
    FROM  echosign_devbox.participation as p
    WHERE NOT EXISTS ( SELECT 1
            FROM echosign_devbox.agreement as a
            WHERE  p.agreement_id = a.agreement_id
              AND  a.status IN ('SIGNED', 'ABANDONED', 'EXPIRED', 'ABANDONED_BEFORE_SEND' ) );

a needs INDEX(agreement_id, status)

Would this give the 'correct' answer?

SELECT COUNT(*)
    FROM echosign_devbox.agreement
    WHERE status NOT IN ('SIGNED', 'ABANDONED', 'EXPIRED', 'ABANDONED_BEFORE_SEND')

What is the relationship between the tables? 1:1? 1:many?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文