首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在一个或多个select语句中重写左联接语句吗?

我可以在一个或多个select语句中重写左联接语句吗?
EN

Stack Overflow用户
提问于 2015-04-04 05:04:52
回答 1查看 789关注 0票数 0

如果我有一个学生和他们的顾问,我想打印每一个学生与它的顾问,即使谁没有.所以我离开了加入学生..。

代码语言:javascript
复制
select student_name,nvl(adviser_name,'null')
from student left join adviser 
on student.adv_id=adviser.adv_Id

现在这是一个左加入。我并不总是记得join是第一个解决方案>>>,我总是将select语句作为首选,所以如何将前面的sql命令更改为单个或嵌套的select命令?

EN

回答 1

Stack Overflow用户

发布于 2015-04-04 05:32:51

当目标是外部连接时,只需使用外部连接即可。

from x,y只是编写from x cross join y的另一种方式;交叉连接的结果是一个笛卡尔积 --在表之间建立关系的限制使得它等价于条件下的普通内部连接和等效的连接。

。。笛卡尔积是一种数学运算,它从多个集合返回一个集(或积集或简单乘积)。也就是说,对于集A和B,笛卡尔积A×B是所有有序对(a,b)的集合,其中a∈A和b∈B。

也就是说,与外部左联接不同,交叉连接不能“弥补空白记录”,因为它们既不存在于A中,也不存在于B中。

因此,人们必须合成(即)。使用包含)“缺失”记录的派生表连接应用了交叉连接之前(或之后)交叉连接,这导致使用外部连接创建派生表。

请参阅这个答案以图形化(但非维恩图)的方式可视化结果;请注意,NULL只在外部联接中引入,而不是内部或交叉连接,或者假装为内部连接的交叉连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29442928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档