You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何查询全量队名表存在但筛选队名表不存在的队伍名称

PostgreSQL 差集查询实现方案

注意事项

你提供的两张表字段名包含空格,PostgreSQL中引用带特殊字符的字段需要用双引号包裹,以下SQL可直接适配该命名规则,使用时把表1、表2替换为你实际的表名即可。


方案1:NOT EXISTS 写法(推荐,大表性能最优)

SELECT t1."team name"
FROM 表1 t1
WHERE NOT EXISTS (
    SELECT 1
    FROM 表2 t2
    WHERE t2."team title" = t1."team name"
);

逻辑是逐行校验表1的队伍,只要表2找不到完全匹配的记录就保留结果,不会自动去重,表1如果有重复的同名队伍会原样返回,适配绝大多数业务场景。


方案2:LEFT JOIN 空值过滤写法

SELECT t1."team name"
FROM 表1 t1
LEFT JOIN 表2 t2 ON t1."team name" = t2."team title"
WHERE t2."team title" IS NULL;

先对两张表做左连接,关联不上的记录的表2字段会为NULL,过滤这部分即可拿到仅在表1存在的队伍,逻辑直观好理解,适合小表查询或者需要同时携带表1其他字段的场景。


方案3:EXCEPT 集合运算写法

SELECT "team name" FROM 表1
EXCEPT
SELECT "team title" FROM 表2;

直接调用PostgreSQL支持的集合差集运算,会自动对结果去重,如果表1有重复的同名队伍,最终结果只会返回一次,适合需要去重的场景。


以上三种方案运行后均会返回你需要的team5、team6、team10三条结果。

内容的提问来源于stack exchange,提问作者Chandana Avadhani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:30:03