在Oracle 11g中

疯狂的犹太人 2011-05-07 12:25:53
在Oracle 11g中
两个表之间的自然连接有时候要加上(+),如下:
学生表: SNO,NAME
课程表: CNO ,CNAME 要求SNO的SUBSTR(SNO,3,1) = CNO取数据,
如下写法:
SUBSTR(R1.SNO,3,1) = R2.CNO(+)或SUBSTR(R1.SNO,3,1) = R2.CNO,

(+)加或者不加,查询出来的数据条数不一样,不知道为什么,请高手指点,

在等式后面添加(+)有啥作用?
...全文
49 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
draling 2011-05-08
  • 打赏
  • 举报
回复
查了一下,哈哈,原来这样:

(+)表示连接的方向,如果(+)号在左边,表示做连接,(+)在右边表示右连接,如下;

A.CNO(+) = C.CNO ;(+)在右边,表示右连接, 即使左边的记录不存在,左边的记录会全部显示;
A.CNO = C.CNO(+) ;(+)在左边,表示左连接,即左边的记录会全部显示
亮剑_ 2011-05-07
  • 打赏
  • 举报
回复
这个不是标准SQL语句,可能是Oracle的扩展,建议转Oracle版块

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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