ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
更多
查看: 6491|回复: 6

为什么这条语句也是正确的? [复制链接]

精华贴数
0
技术积分
310
社区积分
0
注册时间
2008-10-30
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
发表于 2010-3-12 23:14:13 |显示全部楼层
在做oracle047时发现的,在HR下测了一下,下面语句也是可以的
delete from tst j where (employee_id, job_id) = (select employee_id, job_id from employees e where j.employee_id=e.employee_id and j.job_id=e.job_id);

子查询中select返回多条数据,为什么还是可以用 = 连接呢?

请教,谢谢!

版主

资深新手

精华贴数
17
技术积分
23241
社区积分
147
注册时间
2004-6-26
论坛徽章:
71
ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:012010广州亚运会纪念徽章:皮划艇
日期:2011-01-18 23:47:092010广州亚运会纪念徽章:篮球
日期:2011-01-07 22:47:452011新春纪念徽章
日期:2011-01-04 10:24:022010广州亚运会纪念徽章:轮滑
日期:2010-12-31 13:15:402010广州亚运会纪念徽章:羽毛球
日期:2010-12-24 01:06:402010广州亚运会纪念徽章:乒乓球
日期:2010-12-17 23:06:55
发表于 2010-3-12 23:29:57 |显示全部楼层
这是相关子查询,相当于对tst的每行会执行一次。这每次执行都不会返回多行,因为有j.employee_id=e.employee_id 这个条件。

世界上只有两种编程方法:Oracle的方法和错误的方法。

剑破冰山—Oracle开发艺术 即将隆重推出
http://www.china-pub.com/197199
http://www.huachu.com.cn/itbook/itbookinfo.asp?lbbh=10114321

使用道具 举报

精华贴数
12
技术积分
56553
社区积分
11423
注册时间
2008-1-16
论坛徽章:
238
ITPUB年度最佳版主
日期:2011-12-28 15:24:18蛋疼蛋
日期:2012-02-09 18:55:27
发表于 2010-3-13 08:01:58 |显示全部楼层

回复 #2 newkid 的帖子

学习了

使用道具 举报

注册会员

lollipop

精华贴数
1
技术积分
3772
社区积分
77238
注册时间
2008-10-9
论坛徽章:
230
至尊黑钻
日期:2011-12-31 14:25:30紫钻
日期:2011-12-31 15:02:03粉钻
日期:2011-12-31 14:23:47绿钻
日期:2011-12-31 14:49:06黄钻
日期:2011-12-31 14:24:08红钻
日期:2012-01-01 23:49:56Heart of PUB
日期:2011-04-03 16:27:48Heart of PUB
日期:2011-01-01 00:33:29Heart of PUB
日期:2010-12-25 00:03:04Heart of PUB
日期:2010-12-13 16:54:57Heart of PUB
日期:2009-05-14 19:23:53Heart of PUB
日期:2009-03-08 00:50:16
发表于 2010-3-13 08:27:58 |显示全部楼层
原帖由 newkid 于 2010-3-12 23:29 发表
这是相关子查询,相当于对tst的每行会执行一次。这每次执行都不会返回多行,因为有j.employee_id=e.employee_id 这个条件。

nice

使用道具 举报

注册会员

背向天堂

精华贴数
0
技术积分
366
社区积分
12
注册时间
2005-4-17
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:19:50
发表于 2010-3-13 12:16:13 |显示全部楼层
where j.employee_id=e.employee_id and j.job_id=e.job_id
沒文化,又想搞技术的酱油男!

使用道具 举报

精华贴数
0
技术积分
310
社区积分
0
注册时间
2008-10-30
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
发表于 2010-3-21 16:58:03 |显示全部楼层
原帖由 newkid 于 2010-3-12 23:29 发表
这是相关子查询,相当于对tst的每行会执行一次。这每次执行都不会返回多行,因为有j.employee_id=e.employee_id 这个条件。


多谢,后来我也察觉到 这应该是个 相关子查询。

但是,我只是感觉。 我想知道 符合什么样的条件才是相关子查询?(也就说我想找个判断方法)

谢谢!!

使用道具 举报

版主

djゆoracle

精华贴数
18
技术积分
32318
社区积分
35776
注册时间
2006-7-28
论坛徽章:
303
红宝石
日期:2011-04-07 12:36:08红宝石
日期:2011-04-06 17:15:24红宝石
日期:2011-04-07 12:35:55红宝石
日期:2011-04-07 12:36:19红宝石
日期:2010-09-17 14:00:02红宝石
日期:2011-04-07 12:35:44生肖徽章:鼠
日期:2007-03-01 11:01:36生肖徽章:鼠
日期:2010-09-17 14:17:31ITPUB年度最佳版主
日期:2011-12-28 15:24:18生肖徽章:鼠
日期:2007-09-26 17:10:14生肖徽章:鼠
日期:2007-09-26 17:01:14ITPUB年度最佳技术原创精华奖
日期:2011-04-08 18:37:54
发表于 2010-3-21 17:10:22 |显示全部楼层
因为子查询内部用到了j.employee_id,所以是相关的。这个子查询不能独立执行的。能独立执行的就是非相关的

ORACLE是个分外妖娆的女人,她总能勾起你的欲望,去探索她!
                                                                                     --BY DJ
About me:optimistic,passionate and harmonious
focus on  oracle sql and plsql programming,peformance tuning,db design, j2ee,Linux/AIX,web2.0 tech,etc


长期不限数量收鲨鱼章和各种蛋章,600每个,卖的短消息我

使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部