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

如何创建视图实现两表行数据匹配校验并新增校验列

创建带匹配校验列的视图解决方案

根据你的需求,我整理了两种简洁高效的SQL写法来生成目标视图,完美匹配你想要的结果:

方法1:LEFT JOIN + CASE语句

这种方法通过左连接关联两张表,直观判断匹配情况生成CHECK列(注意CHECK是SQL关键字,建议用反引号/方括号/双引号包裹,避免语法错误):

CREATE VIEW NewView AS
SELECT 
    t1.Name,
    t1.ID,
    t1.Team,
    CASE 
        WHEN t2.ID IS NOT NULL THEN 1 
        ELSE 0 
    END AS `CHECK`
FROM Table1 t1
LEFT JOIN Table2 t2 
    ON t1.ID = t2.ID 
    AND t1.Team = t2.Team;

逻辑说明:

  • 以Table1为主表,左连接Table2,关联条件严格限定为ID和Team同时匹配
  • 如果匹配成功,t2.ID会返回有效值,此时CHECK列设为1;无匹配则设为0

方法2:EXISTS子查询

如果只需要判断匹配是否存在,用EXISTS子查询性能更优(尤其适合数据量较大的表):

CREATE VIEW NewView AS
SELECT 
    t1.Name,
    t1.ID,
    t1.Team,
    CASE 
        WHEN EXISTS (
            SELECT 1 
            FROM Table2 t2 
            WHERE t2.ID = t1.ID 
              AND t2.Team = t1.Team
        ) THEN 1 
        ELSE 0 
    END AS `CHECK`
FROM Table1 t1;

逻辑说明:

  • 对Table1的每一行,检查Table2中是否存在ID和Team完全匹配的记录
  • 存在匹配记录则返回1,否则返回0

最终视图结果

执行上述任意一种SQL后,生成的视图数据会完全符合你的预期:

NAMEIDTEAMCHECK
John3511
Josh8911
Josh8920
Josh8930
Jim2520

内容的提问来源于stack exchange,提问作者Joe.Burch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:48:05