gpt4 book ai didi

sql - 检查postgres中多条记录的行是否存在的有效方法

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

我看到了相关 question 的答案,但无法真正将他们所做的应用到我的具体案例中。

我有一个大表(300k 行),我需要与另一个更大(1-2M 行)的表有效地连接。出于我的目的,我只需要知道第二个表中是否存在匹配行。我想出了一个这样的嵌套查询:

SELECT 
id,
CASE cnt WHEN 0 then 'NO_MATCH' else 'YES_MATCH' end as match_exists
FROM
(
SELECT
A.id as id, count(*) as cnt
FROM
A, B
WHERE
A.id = B.foreing_id
GROUP BY A.id
) AS id_and_matches_count

是否有更好和/或更有效的方法?

谢谢!

最佳答案

你只需要一个左外连接:

SELECT 
A.id as id, count(B.foreing_id) as cnt
FROM A
LEFT OUTER JOIN B ON
A.id = B.foreing_id
GROUP BY A.id

关于sql - 检查postgres中多条记录的行是否存在的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22681766/

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