oracle查询多张表交集,Oracle中对两个数据表交集的查询-专栏,ORACLE

本文介绍了在Oracle数据库中如何使用INTERSECT操作符和IN子句来查询两个数据表的交集数据。INTERSECT用于返回两个查询结果的共同记录,而IN子句则通过在WHERE子句中使用子查询来比较一列或多列的值。文中通过实例展示了两种方法的用法,并提供了查询结果示例。
摘要由CSDN通过智能技术生成

8-810-jpg_6-1080-0-0-1080.jpg

oracle关系型管理系统是世界上流行的关系,它是一个极其强悍、灵活和复杂的系统,据说,在使用oracle时应有这样的观念,那就是在sql中近乎可以推动任何一种想法。

下面向你们介绍使用sql查两个oracle数据表查询的同样数据的方式,笔者感到这两种方式执行强度高、使用便于。

第一种方法:利用操作符intersect

intersect操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数目跟数据类别需要完全相同。

举例说明:

表a的数据结构:

55524caa8cde14e6a1cb1ee4b9be3744.png

中文名称字段名类型长度学号 codec 4姓名 namec 8

表b的数据结构:

中文名称 字段名 类型 长度学号 student_code c 4姓名 student_namec 8分数 scoren 3

表a的数据为:

(1101 ,韩甲),(1102 ,丁乙)

表b的数据为:

02e86fd7f402f5bc80ba1e87c9b63d08485bab0d.jpg

(1101oracle 交集,韩甲,ArrayArray),(1102 ,丁乙,8Array),(1103 ,徐静,Array4)

在oracle中运行以下查询,图1显示了这个查询的结果:

sql>select code, name from a

intersect

select student_code,student_name from b;

图1使用intersect操作符查询的结果

88fb3764922607d1729d3dcead42a3dd.png

第二种方法: in子句

in子句可以在子查询中为where子句计算所得的值建立一个列表。这种方式与前一种方法有所不同的是,前一种方法非常多列但只使用一个intersect就行了,而一个in子句用来比较两个子查询的一列,比较几列就要使用几个in子句。下面例子表明怎样获得两个查询的交集。

仍以a和b两张数据表为例oracle 交集,在oracle中运行以下查询,图2显示了这个查询的结果:

sql>select code,name from a

where a.code in

(select student_code from b)

3e280157e00b32e9ab6597d726e98a3b.png

and a.name in

(select student_name from b)

order by a.code;

查询结果如图2所示。

图2使用in子句查询的结果

以上为笔者使用oracle7.3的体会,如有不当之处,请不吝赐教。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/shumachanpin/article-138676-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值