如何查询T1列1存在于T2列1但列2不存在于T2列2的对应记录
方案1:LEFT JOIN 左连接筛选法(兼容性最佳,支持所有主流SQL数据库)
SELECT t2.* FROM T2 LEFT JOIN T1 ON T2.`Column 1` = T1.`Column 1` AND T2.`Column 2` = T1.`Column 2` WHERE T1.`Column 1` IS NULL;
逻辑说明:以T2为基表左关联T1,关联条件同时匹配key(Column 1)和value(Column 2)两个字段,当关联后T1的字段值为空时,说明T2的这条key-value组合不存在于T1中,符合返回要求。
方案2:NOT EXISTS 存在性判断法(大表查询性能更优)
SELECT t2.* FROM T2 WHERE NOT EXISTS ( SELECT 1 FROM T1 WHERE T1.`Column 1` = T2.`Column 1` AND T1.`Column 2` = T2.`Column 2` );
逻辑说明:遍历T2的每一条记录,校验是否在T1中存在完全相同的key-value组合,不存在的记录就会被返回。
内容的提问来源于stack exchange,提问作者Eric Gong
相关产品推荐
相关产品推荐

