我几乎没有SQL经验,所以在尝试解释我的问题时,请多多包涵。
我有三个表:
这些表中的记录都通过它们共享的字段(GENID)连接在一起。
我想检查实例中应该存在的第三张表中没有的记录。只有在Web表单和用户两者中都有非常特定的值的记录才是这种情况。
因此,我想从前两个表中搜索符合特定条件的所有记录,而仅返回其GENID没有出现在第三个表中的记录。
我该如何实现?
通常可以使用反联接EXISTS
或来完成EXCEPT
。今天我们将使用反联接
SELECT
*
FROM
webforms w
inner join
Users u
on
w.GENID = u.GENID
left join
signing_rules sr
on
w.GENID = sr.GENID
where
sr.GENID is null and
/* Other conditions on webforms and users */
aleft join
和where子句的组合检查该表中不应该为null的列,这意味着最终出现在结果集中的唯一结果是left join
失败的行(因此是反联接的)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句