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查询包含在子表中的主表数据相关推荐

  1. mysql教程详解之多表联合查询,MYSQL教程mysql多表联合查询返回一张表的内容实现代码...

    搜索热词 <MysqL教程MysqL多表联合查询返回一张表的内容实现代码>要点: 本文介绍了MysqL教程MysqL多表联合查询返回一张表的内容实现代码,希望对您有用.如果有疑问,可以联系 ...

  2. hive SQL 创建数据库,创建hive表、查询时,其表名,字段,统统不区分大写(在底层一律转换为小写)

    hive SQL 创建数据库,创建hive表.查询时,其表名,字段,统统不区分大写(在底层一律转换为小写) (1).默认default数据库 hive默认自带一个名为default的数据库,如果建表时 ...

  3. 打印包含在 boost::exception 中的所有数据的测试程序

    打印包含在 boost::exception 中的所有数据的测试程序 实现功能 C++实现代码 实现功能 打印包含在 boost::exception 中的所有数据的测试程序 C++实现代码 #inc ...

  4. oracle开放查询表权限_oracle 查询当前用户的表和其他用户的表

    首先 当前的用户 需要有查询其他用户的表的 权限 然后 如果是用该用户登录使用以下语句: SELECT * FROM USER_TABLES; 如果是用其他用户: SELECT * FROM ALL_ ...

  5. mysql多表联合查询事例_MySQL——多表查询详细介绍以及实例

    1.表与表之间的关系 一对一:用户表和身份信息表,用户表是主表 例如:男人表 .女人表create table man( mid int primary key auto_increment, mna ...

  6. mysql 多表并列查询_MySQL-18(多表查询INNER/LEFT/RIGHT JOIN)

    #    1. 多表联合查询 基本用法:查询需要显示的数据来自多张表 /*    两个关联的table查询    */ SELECT * FROM  table_name1 ,table_name2: ...

  7. mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录

    mysql查询在一张表不在另外一张表的记录 问题: 查询一个表(tb1)的字段记录不在另一个表(tb2)中 条件:tb1的字段key的值不在tbl2表中 ---------------------- ...

  8. php检测表大小,查询mysql数据库、表的大小

    一.关于mysql表数据大小 mysql存储数据文件一般使用表空间存储 : 当mysql使用innodb存储引擎的时候,mysql使用表存储数据分为共享表空间和独享表空间两种方式 .共享表空间:Inn ...

  9. java 索取了多表联合查询分页,mybatis-plus多表联合分页查询

    1.entity层要写个Vo实体类 2.controller @AutoLog(value = "员工CURD-分页列表查询") @ApiOperation(value=" ...

最新文章

  1. 在Eclipse上搭建Android C开发环境
  2. itchat 保存好友信息以及生成好友头像图片墙
  3. 【计算机网络复习 数据链路层】3.1 数据链路层功能概述
  4. 利用numpy生成各种波
  5. 车牌识别--opencv(python)
  6. R 编程语言 - 简介
  7. 企业会计准则第34号——每股收益(2006)
  8. Unity粒子系统基本
  9. 使用python爬虫爬取百度新闻,告诉你社会热点话题
  10. 共享雨伞,又一个昙花一现的共享经济?
  11. python标准库复数运算包cmath
  12. java集成RSA非对称加密数据传输
  13. net.sf.json.JSONException: Unterminated string at character 1801
  14. 小灰灰的APP学习之路(三)--创建一个简单的问答选择项目
  15. 企业级session管理框架:btg-session-jfinal
  16. MySQL数据库(数据库约束)
  17. mysql-administrator的安装与使用(图文)
  18. java图标的含义_Eclipse中常见图标的含义
  19. 如何给网站安装SSL证书?
  20. 在不同的表中查询省对应多个城市,城市对应多个机场,机场对应多个门店。树联

热门文章

  1. Cisco ××× 实例配置方案
  2. matlab -- LBG训练器
  3. 基于android欢乐写数字6,欢乐数独2020
  4. Hypack2018处理侧扫声呐资料
  5. 面试入职hr要工资app截图,流水截图,工资银行流水怎么解决
  6. 网络下载器 EagleGet v2.0.4.60 Full 绿色便携版
  7. 没技术不会做APP,一样可以制作App
  8. 通过例子学TLA+(七)--操作符
  9. Stardew Valley learn English 星露谷学英语
  10. Matplotlib关于字体及子图的详细操作