我有两个表,我想使用左外部联接将它们联接在一起。但是,即使我的左表仅包含唯一值,右表也可以多次满足CONDITION,因此会向结果集添加额外的行。
复制问题的代码:
declare @tb1 table (c1 int)
declare @tb2 table (c2 int)
INSERT INTO @tb1 VALUES (1)
INSERT INTO @tb1 VALUES (2)
INSERT INTO @tb1 VALUES (3)
INSERT INTO @tb1 VALUES (4)
INSERT INTO @tb2 VALUES (3)
INSERT INTO @tb2 VALUES (4)
INSERT INTO @tb2 VALUES (5)
INSERT INTO @tb2 VALUES (6)
select * from @tb1 left outer join @tb2 ON c1 = c2
INSERT INTO @tb2 VALUES (3)
INSERT INTO @tb2 VALUES (4)
INSERT INTO @tb2 VALUES (5)
INSERT INTO @tb2 VALUES (6)
select * from @tb1 left outer join @tb2 ON c1 = c2
如您所见,尽管左表保持不变,但第一个SELECT返回4行,第二个SELECT 6html" target="_blank">返回。
一个人如何严格遵守左表,而仅使用右表来补全左表中的行?
帮助!
RESULTS:
c1 c2
----------- -----------
1 NULL
2 NULL
3 3
4 4
[DUPLICATE @tb2 records]
c1 c2
----------- -----------
1 NULL
2 NULL
3 3
3 3
4 4
4 4
抱歉,您的想法歪了。
这样考虑:如果您只希望tb1中的每一行都来自tb2中的一行,那么服务器应该选择哪一行?事实是,根据联接的定义,右侧表中与左侧行匹配的每一行都是匹配项,必须包含在内。
在连接之前,您必须确保tbl2对于c2具有不同的值。只要您的SQL变体支持DISTINCT [column](并非全部),Murph的建议就可以做到。
我是一个相对新手流用户,我觉得应该有一个更干净的方式来完成我下面的内容。是否有可能在一个流中完成下面的代码所做的一切(消除底部的if/else)? 谢谢
已经提出了与此相关的问题。我什么都试过了,但没能解决我的问题。我挣扎了2个小时,现在我在这里发布这个。 问题:UIScrollView的顶级contentInset总是有20像素的额外空间。 我有视图控制器XIB,而不是故事板。 首先,stackoverflow上的相关问题及其解决方案假设UIScrollView是UIViewController的根视图。但是我的滚动视图不是根视图,因此可能 se
Marcin Grzejszczak谈论Spring Cloud Sleuth和Zipkin 点击此处查看视频
数据库 默认情况下,Tendermint使用 syndtr/goleveldb 包作为其进程内键值数据库。不幸的是,LevelDB 的这个实现似乎在重载下受到了影响(参见#226)。最好安装 LevelDB 的真正 c 实现,并使用 make build_c 编译 Tendermint。有关详细信息,请参阅安装说明。 Tendermint 在 $TMROOT/data 中保存多个不同级别的 db
这些模块是当前ansible附带的,但是也可能在以后被分开.额外模块主要被社区人员维护.非核心模块仍然是完全可用的,但是在发出和拉取请求时可能收到稍微低的响应速率 受欢迎的的 “extras” 模块将来可能会提升为核心模块 这些额外的模块托管在Github上的,`ansible-modules-extras <http://github.com/ansible/ansible-modules-ex
我有一张垂直卷轴的桌子。我保留一些行折叠并由一些脚本管理。 为了允许额外的内容,我使用了和,但是由于隐藏的内容,这会在表的最后一行之后创建一个空格。表的大小是正确的,但即使没有溢出,也会显示一个滚动条(滚动空格)。 我在Chrome和Firefox中看到了这一点。 有什么想法让那些行真正隐形吗?