大神们,请问这种是多表连接吗

BIGWHITE166 2020-02-24 05:28:23
请问这种是多表连接吗?
select
(select a.cl from a where a.id = b.id )
from b;

与下面的查询结果有区别吗?感谢各位大神

select a.cl
from a , b
where a.id = b.id;
...全文
385 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2020-05-21
  • 打赏
  • 举报
回复
第一种为标量子查询,第二种为内连接,一定是有区别的。
AHUA1001 2020-03-06
  • 打赏
  • 举报
回复
第一种,如果b表的一条记录,对应a表的多条记录,就会报错。
第二种,b表的一条记录,对应a表的多条记录,不会报错。
实际这两种写法,差异比相同的地方更多。
多试一下,会有更多发现。
懒惰の天真热 2020-02-26
  • 打赏
  • 举报
回复
两者意义肯定不同啊。而且,select (select a.cl from a where a.id = b.id )from b;可能会报错,当select a.cl from a where a.id = b.id返回多个结果时,会报结果不唯一的错误
lhdz_bj 2020-02-26
  • 打赏
  • 举报
回复
引用 楼主 星空入口转了个圈 的回复:
请问这种是多表连接吗?
select
(select a.cl from a where a.id = b.id )
from b;

与下面的查询结果有区别吗?感谢各位大神

select a.cl
from a , b
where a.id = b.id;


前者为标量子查询,后者为标准的内连接,区别肯定有,结果集有可能不同,性能也可能不一样。
minsic78 2020-02-25
  • 打赏
  • 举报
回复
实质上都是表连接,但前者和后者的意义是不一样的,前者实际上是个外连接: select a.cl from a , b where a.id(+) = b.id;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧