社区
基础和管理
帖子详情
老式 outer join 的问题
Leejs413
2008-07-09 02:18:27
在一段代码中,看到了下面的一段sql语句,搞了半天明白了(+)=相当于left outer join
但是(+)<>就弄不明白了,好像是老式的outer join语句,而且不能和left outer join混用
SELECT *
FROM A,B
WHERE A.ID (+)= B.ID
AND A.origin(+)<>'U'
大家帮忙看看,谢谢了
...全文
103
2
打赏
收藏
老式 outer join 的问题
在一段代码中,看到了下面的一段sql语句,搞了半天明白了(+)=相当于left outer join 但是(+)就弄不明白了,好像是老式的outer join语句,而且不能和left outer join混用 SELECT * FROM A,B WHERE A.ID (+)= B.ID AND A.origin(+)'U' 大家帮忙看看,谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Leejs413
2008-07-09
打赏
举报
回复
谢谢1楼的回答,但是这样理解查询结果不一样
又尝试了一下,发现在老式的<>还是有一些区别的
建了两个表A,B
A_ID A
---------- -
1 a
2 a
B_ID B
---------- -
1 b
2 b
select *
from A
left outer join B
on A.A_ID = B.B_ID
where A.A_ID<>'2';
select *
from A,B
where A.A_ID(+)=B.B_ID
and A.A_ID(+)<>'2'
这两个语句的查询结果不一样,分别是
A_ID A B_ID B
---------- - ---------- -
1 a 1 b
A_ID A B_ID B
---------- - ---------- -
1 a 1 b
2 b
也就是说老式的查询是先过滤再进行outer join
现在的都是先outer join完再过滤数据
gaohaha
2008-07-09
打赏
举报
回复
= 号 相当于 left outer join on aa.aa=bb.bb 的等号
<> 相当于 left outer join on aa.aa<>bb.bb 的不等号
多表连接查询
--2、外连接out
er
join
: --除了返回两个表中所有满足连接条件的行之外,还返回 --某个表中不满足连接条件的行 --3、交叉连接 --产生笛卡尔积的连接 --如果连接条件使用等号=,就可以叫做相等连接 --1、使用...
加号 and oracle,Oracle的加号(+)表示法和ansi
JOIN
表示法之间的区别?
它的使用被认为是“
老式
的”,也不像ANSI
JOIN
语法那样可移植。 它也被认为是不太可读的,虽然如果你来自习惯于ANSI
JOIN
的+背景,可能需要一点时间。 在向Oracle投掷砖块之前,要知道的重要一点是在ANSI委员会完成...
LINQ的左外连接
如何在不使用
join
-on-equals-into子句的情况下在C#LINQ中对对象执行左外部联接? 有什么办法可以通过wh
er
e子句做到这一点? 正确的
问题
:因为内部联接很容易,我有这样的解
ABAP程序优化
Out
er
Join
,是否可以将ON中的条件移动到Wh
er
e从句则要考虑(如果真能放在Wh
er
e从句中,则应该使用Inn
er
Join
,而非Left Out
er
Join
,因为Wh
er
e条件会过滤掉那些包括在右表中不存在的左表数据),因为此时条件放在...
Hib
er
nate 简化继承映射
如果您喜欢用
老式
的 SQL 查询,那么 Hib
er
nate 也为您提供了使用它们的机会。但是我们使用的示例只用 HQL。 HQL 用起来相当简单。您会发现所有的关键字都与您熟悉的 SQL 中的关键字类似,例如 SELECT 、 ...
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章