【发布时间】:2011-02-05 20:42:35
【问题描述】:
在更深层次的视图中编写视图和嵌套视图时,我有时会遗漏某些内容并最终丢失行/数据。如何检查两个不同表中的列是否具有完全匹配的数据?
例子:
select count(distinct table1.col1)
from table1
where table1.col1 not in (select distinct table2.col1
from table2);
这将返回 table1.col1 中不在 table2 中的值的数量。但是,我不知道这是一个好的解决方案,因为它不计算 table1.col1 中不存在的 table2.col1 值。
【问题讨论】:
-
当然嵌套视图通常是一件坏事(至少在 SQL Server 中)。在开发中看起来不错,但是一旦你进入 prod 并且有很多记录,你可以通过嵌套视图来关闭系统。我会通过向基表添加几百万条测试记录来测试这些嵌套视图。
-
确实,我最终会重写查询,创建一串嵌套视图是为了在开始时进行概念验证,以验证数据是否按照我想要的方式形成。当数据库推出时,我会重构视图。
标签: sql database sqlite select