博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单介绍join,outer-join,semi-join,anti-join的区别
阅读量:7088 次
发布时间:2019-06-28

本文共 1676 字,大约阅读时间需要 5 分钟。

表连接的方式如join,semi-join,outer-join,anti-join;

表连接的实现方式如nested loop,merge,hash.
本文简单的介绍表连接的方式join,semi-join,outer-join,anti-join和适用情景。

假设2个数据源(row source).

Emp(id pk,ename,deptno) Dept(deptno pk,dname)

如下是join

select ename,dname from emp,dept where emp.deptno=dname.deptno;
2个数据源键值一一比较,返回相互匹配的记录集
for example: nested loop join
for x in ( select * from emp )
loop
for y in ( select * from dept)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.ename,y.dname)
End if
end loop
end loop

outer-join

select ename,dname from emp,dept where emp.deptno= dept.deptno(+);
select ename,dname from emp,dept where emp.deptno(+)=dept.deptno;
2个数据源键值一一比较,返回相互匹配的;但如果在另外一个row source没有找到匹配的也返回记录
for example: nested loop outer-join
for x in ( select * from emp )
loop
find_flag=false;
for y in ( select * from dept)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.ename,y.dname)
Find_flag=true
End if
end loop
if ( find_flag == false )
OutPut_Record(x.ename,null)
End if
end loop
semi-join
select dname from dept where exists( select null from emp where emp.deptno=dept.deptno)
多在子查询exists中使用,对外部row source的每个键值,查找到内部row source匹配的第一个键值后就返回,如果找到就不用再查找内部row source其他的键值了。
for example: nested loop semi-join

for x in ( select * from dept )
loop
for y in ( select * from emp)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.dname)
Break;
End if
end loop
end loop

anti-join

select ename,deptno from emp,dept where emp.deptno!=dept.deptno
多用于!= not in 等查询;如果找到满足条件(!= not in)的不返回,不满足条件(!= not in)的返回。和join相反。
 for example: nested loop anti-join
for x in ( select * from emp )
loop
for y in ( select * from dept)
loop
if ( x.deptno != y.deptno )
OutPut_Record(x.dname,y.deptno)
End if
end loop
end loop

转载地址:http://wxfql.baihongyu.com/

你可能感兴趣的文章
中国电信密集开通南沙多个光缆4G基站
查看>>
清华产业十大创新项目评选 新华三H3Cloud OS夺冠
查看>>
Synaptics车用指纹传感器
查看>>
MXNet 0.11发布,加入动态图接口Gluon,还有两位CMU教授的亲笔教程
查看>>
AIM推出医疗设备RFID系统干扰评估标准
查看>>
《系统分析与设计方法及实践》一2.2 敏捷软件开发
查看>>
5G全球统一标准有望形成 中国话语权提升
查看>>
天龙光电毛利率异常 数千万元预收不知从何而来
查看>>
双态IT时代,你需要什么样的IT咨询服务?
查看>>
iOS9.3激活失败 疑似激活服务器被挤爆
查看>>
最低调的恶意软件之Dimnie瞄准GitHub开发人员
查看>>
运营商发展大数据的四大误区
查看>>
Facebook新的图搜索?效果不是很理想
查看>>
Google公司致力发展企业云市场
查看>>
日媒称黑客组织瞄上中企:目标企业被迫停牌3年
查看>>
Fortinet实验室提醒用户注意Office高危漏洞
查看>>
10年后全球智慧城市市场规模将达到3.5万亿美元
查看>>
雅虎高管解读财报 将在今年完成阿里资产剥离
查看>>
大数据时代安全难题:个人信息保护立法紧迫
查看>>
国家发改委:资金支持大数据重大建设项目
查看>>