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

SQL查询:查找不同行C、D列值匹配且E列值相同的对应数据

解决方案

你可以通过表自连接的方式实现跨行匹配需求,以下是不同使用场景下的SQL写法:

场景1:单独返回所有符合条件的行

如果需要把匹配上的两行都单独作为结果输出,可以用EXISTS子查询实现:

SELECT t.*
FROM 你的实际表名 t
WHERE EXISTS (
    SELECT 1
    FROM 你的实际表名 t2
    WHERE 
        -- 满足跨行C、D列匹配规则
        (t.C = t2.D OR t.D = t2.C)
        -- 两行E列值完全相同
        AND t.E = t2.E
        -- 避免匹配到同一行,无主键可替换为能唯一区分行的字段组合
        AND t.主键列 != t2.主键列
);

场景2:返回配对行的关联信息

如果需要把匹配的两行信息放在同一条结果中展示,可以用自连接查询:

SELECT 
    t1.A AS 匹配行1_A, t1.B AS 匹配行1_B,
    t2.A AS 匹配行2_A, t2.B AS 匹配行2_B,
    t1.E AS 共同E列值
FROM 你的实际表名 t1
INNER JOIN 你的实际表名 t2
    ON t1.D = t2.C 
    AND t1.E = t2.E
    -- 避免重复返回同一配对,如A匹配B和B匹配A仅返回一次
    AND t1.主键列 < t2.主键列;

用你给出的示例数据测试场景2的查询,会直接返回teeth行和hand行的配对结果,完全符合你预期的匹配规则。如果只需要提取指定列,自行调整SELECT后的字段列表即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:45:02