oracle主表子表,oracle查询包含在子表中的主表数据
Oracle数据库,查询某表中包含在子表中的数据,子表中数据按特定条件来源于该父表,SQL命令如
select * from a_table a where a.commandId in (select commandId from b_table where type = 1)
a_table父表,b_table子表,a和b表都有commandId列,a表的commandId主键关联b表中的外键commandId,要求a表中commandId包含在b表commandId中,且b表的type黑白名单类型为1的数据
(即查出b表存在的关联的a表的数据)
也可以用:(仅限于一对一的情况,一对多会出现主表重复的情况)
select * from a_table a,b_table b where a.commandId =b.commandId (+) and b.commandId is not null and b.type = 1;
如(一对多出现的问题):
或者是
select * from a_table a where exists(select 1 from b_table b where b.commandId =a.commandId where b.type = 1)
有关in和exists的区别:
“EXISTS,Oracle会首先检查主查询,然后运行子查询直到它找到第一个匹配项。IN,在执行子查询之前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。
1、UNION (无重并集):当执行UNION 时,自动去掉结果集中的重复行,并以第一列的结果进行升序排序。
2、UNION ALL (有重并集):不去掉重复行,并且不对结果集进行排序。
3、INTERSECT (交集):取两个结果集的交集,并且以第一列的结果进行升序排列。
select id,name,job from worker
INTERSECT
select empno,ename,job fromemp;
4、MINUS (差集):只显示在第一个集合中存在,在第二个集合中不存在的数据。并且以第一列的结果进行升序排序。
因此,还有一种写法:
select * from a_table a where a.commandId in (select commandId from a_table intersect select commandId from b_table)
oracle主表子表,oracle查询包含在子表中的主表数据相关推荐
- mysql教程详解之多表联合查询,MYSQL教程mysql多表联合查询返回一张表的内容实现代码...
搜索热词 <MysqL教程MysqL多表联合查询返回一张表的内容实现代码>要点: 本文介绍了MysqL教程MysqL多表联合查询返回一张表的内容实现代码,希望对您有用.如果有疑问,可以联系 ...
- hive SQL 创建数据库,创建hive表、查询时,其表名,字段,统统不区分大写(在底层一律转换为小写)
hive SQL 创建数据库,创建hive表.查询时,其表名,字段,统统不区分大写(在底层一律转换为小写) (1).默认default数据库 hive默认自带一个名为default的数据库,如果建表时 ...
- 打印包含在 boost::exception 中的所有数据的测试程序
打印包含在 boost::exception 中的所有数据的测试程序 实现功能 C++实现代码 实现功能 打印包含在 boost::exception 中的所有数据的测试程序 C++实现代码 #inc ...
- oracle开放查询表权限_oracle 查询当前用户的表和其他用户的表
首先 当前的用户 需要有查询其他用户的表的 权限 然后 如果是用该用户登录使用以下语句: SELECT * FROM USER_TABLES; 如果是用其他用户: SELECT * FROM ALL_ ...
- mysql多表联合查询事例_MySQL——多表查询详细介绍以及实例
1.表与表之间的关系 一对一:用户表和身份信息表,用户表是主表 例如:男人表 .女人表create table man( mid int primary key auto_increment, mna ...
- mysql 多表并列查询_MySQL-18(多表查询INNER/LEFT/RIGHT JOIN)
# 1. 多表联合查询 基本用法:查询需要显示的数据来自多张表 /* 两个关联的table查询 */ SELECT * FROM table_name1 ,table_name2: ...
- mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录
mysql查询在一张表不在另外一张表的记录 问题: 查询一个表(tb1)的字段记录不在另一个表(tb2)中 条件:tb1的字段key的值不在tbl2表中 ---------------------- ...
- php检测表大小,查询mysql数据库、表的大小
一.关于mysql表数据大小 mysql存储数据文件一般使用表空间存储 : 当mysql使用innodb存储引擎的时候,mysql使用表存储数据分为共享表空间和独享表空间两种方式 .共享表空间:Inn ...
- java 索取了多表联合查询分页,mybatis-plus多表联合分页查询
1.entity层要写个Vo实体类 2.controller @AutoLog(value = "员工CURD-分页列表查询") @ApiOperation(value=" ...
最新文章
- 在Eclipse上搭建Android C开发环境
- itchat 保存好友信息以及生成好友头像图片墙
- 【计算机网络复习 数据链路层】3.1 数据链路层功能概述
- 利用numpy生成各种波
- 车牌识别--opencv(python)
- R 编程语言 - 简介
- 企业会计准则第34号——每股收益(2006)
- Unity粒子系统基本
- 使用python爬虫爬取百度新闻,告诉你社会热点话题
- 共享雨伞,又一个昙花一现的共享经济?
- python标准库复数运算包cmath
- java集成RSA非对称加密数据传输
- net.sf.json.JSONException: Unterminated string at character 1801
- 小灰灰的APP学习之路(三)--创建一个简单的问答选择项目
- 企业级session管理框架:btg-session-jfinal
- MySQL数据库(数据库约束)
- mysql-administrator的安装与使用(图文)
- java图标的含义_Eclipse中常见图标的含义
- 如何给网站安装SSL证书?
- 在不同的表中查询省对应多个城市,城市对应多个机场,机场对应多个门店。树联