有一个Oracle中的SQL查询语句的问题

现在有一个SQL语句,有点不理解,请高手指点,先谢谢了。表A:CDAge1000701001801002901003100表B:CDID1000111001221002N... 现在有一个SQL语句,有点不理解,请高手指点,先谢谢了。
表A:
CD Age
1000 70
1001 80
1002 90
1003 100
表B:
CD ID
1000 11
1001 22
1002 NULL
查询语句是:
select A.CD,B.ID
from A,B
where A.CD = B.CD(+) AND
B.ID(+) = 11
查询结果是:
1000 11
1001 NULL
1002 NULL
1003 NULL
这个查询我本以为是错的,因为对B.ID(+)=11我不太理解,请高手给我解释一下这个查询语句是如何执行的。
我对SQL文还是知道的,也知道where后的第一个条件是外连接,但对AND后面的那个B.ID(+) = 11条件很不理解,还请高手解释。。。。。
先谢谢 柏祖连 的回答,但我真的没看懂,是我比较愚钝了,希望能再解释清楚点,谢谢!
另外,δCat的答案我也看了下,如果按照你的说法,最好的运行结果只有一行了:1000 11
所以还是不对。。。。。。
请会的高手再解答下
展开
 我来答
柏祖连
2005-12-10 · TA获得超过1865个赞
知道答主
回答量:449
采纳率:0%
帮助的人:0
展开全部
双表查询:
简单说了
仔细的说如下(也是简单,还是你学学吧)
select A.CD,B.ID from A,B
用select 先选择a表的cd字段 b表的ID做为,两个表的查询依据,查出两个表中所有CD,ID 两个字段的内容
那个from后面的a,b指的要查的表。后面一句where a.cd=b.cd(+)ad...是条件,也就是说符合a表.cd标准的b表中的id字值和cd字同时为11的列表值。
在意如此。
总的来说,是查一个固定ID排序值,其中B.ID(+)=11不是结果,B.CD(+) AND
B.ID(+) = 11
加起来满足a.cd才是结果。而这里的b.id(+)=11是指定查询,(这里是独立理解,因为你这句中还有一个条件为B.CD(+) 其它他和B.ID(+) 意思一样如果这样写
A.CD = B.ID(+)ANDB.CD(+)
= 11是一样的,之后一个等号后面的是限制范围。(语文没学好,不会表达,不好意思,如果看到我这句之后感觉更迷湖了,就拿刀砍我吧)
ZESTRON
2024-09-04 广告
表面污染分析包括评估表面上存在的颗粒、残留物或物质。通过利用显微镜、光谱学和色谱法等技术,分析人员可以识别和表征污染物,以确定其成分和来源。这种分析在电子、制药和制造等各个行业中至关重要,以确保产品质量、性能和安全性。了解表面污染有助于实施... 点击进入详情页
本回答由ZESTRON提供
百度网友94f02eb
2005-12-10 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4488万
展开全部
在 ORACLE 中, + 表示 半连接,+在=左边,表示左连接,+在=右边表示右连接。

A.CD = B.CD(+) AND B.ID(+) = 11

上面这个意思是 :
(A.CD = B.CD or B.CD IS NULL) AND (B.ID = 11 or B.ID IS NULL)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zccforever
2005-12-09 · 超过13用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:0
展开全部
不太明白,请教高人了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式