设为首页 加入收藏

TOP

select1frombwhereb.id=a.id和select1fromawhereb.id=a.id的区别介绍
2018-03-14 09:00:32 】 浏览:55
Tags:select1frombwhereb.id a.id select1fromawhereb.id 区别 介绍

select 1 from b where b.id = a.id和 select 1 from a where b.id = a.id有区别么?

请问他们有区别么?

举个例子:

select * from b where exists (select 1 from a where a.c=b.c)

select * from b where exists (select 1 from b where a.c=b.c)

这两句有区别么?(高效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT ‘X’ FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB’)

(低效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB’)

选的表不同,你的例子,第一个是从b表选a.c=b.c的数据,第二个是从a表选。就好像a有3个c=1,b有1个c=1,你说从不同表选c=1结果一样不?就这意思。

其实你的:select * from b where exists (select 1 from a where a.c=b.c)

等价于:select * from b where b.c IN (select a.c from a where a.c=b.c)

可能用下面这句容易看懂些。就是从b表中查找与a表有相同字段c的所有结果集。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle数据库Where条件执行顺序及.. 下一篇windows环境下出现Error 1045(280..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }