SQL> select * from a1;ID NAME
---------- ----------1 a2 aSQL> select * from a2;ID NAME
---------- ----------1 a3 aSQL> select * from a1 where id in (select id from a2);ID NAME
---------- ----------1 a改写成关联:
SQL> select * from a1,a22  where a1.id= a2.id;ID NAME         ID NAME
---------- ---------- ---------- ----------1 a             1 a此时是因为(select id from a2)子查询只返回一条记录,那么子查询返回多条呢?
SQL> select * from a2;ID NAME
---------- ----------1 a3 a1 aSQL> select * from a1 where id in (select id from a2);ID NAME
---------- ----------1 aSQL> select a1.* from a1,a22  where a1.id= a2.id;ID NAME
---------- ----------1 a1 a此时是不是出现重复数据了?
继续测试:
SQL> select * from a1;ID NAME
---------- ----------1 a2 a1 aSQL> select * from a2;ID NAME
---------- ----------3 a1 aSQL> select * from a1 where id in (select id from a2);ID NAME
---------- ----------1 a1 aSQL>  select a1.* from a1,a22  where a1.id=a2.id;ID NAME
---------- ----------1 a1 a结论:IN改写关联时,如果子查询返回多条记录,需要去从。测试2:
SQL> select * from a1;ID NAME
---------- ----------1 a2 a1 aSQL> select * from a2;ID NAME
---------- ----------2 a3 a3 a1 a1 aSQL> select * from a1 where a1.id in (select id from a2);ID NAME
---------- ----------2 a1 a1 aSQL> select a1.* from a1 ,a22  where a1.id=a2.id;ID NAME
---------- ----------2 a1 a1 a1 a1 a正确写法:
SQL>   select a1.* from a1 ,(select id from a2 group by id) a22   where  a1.id=a2.id;ID NAME
---------- ----------1 a2 a1 a
子查询里面的 关联列没有重复数据 可以直接改In,如果关联列有重复数据需要去从

转载于:https://www.cnblogs.com/zhaoyangjian724/p/3797963.html

IN改写关联注意事项!相关推荐

  1. 3%!微软只录用最顶尖的人才!

    在公司组织和管理方面,微软始终遵循着这样一项策略,即坚持发掘既懂专业技术又深谙经营之道的精明人士.我们可以把这项策略归结为4项原则:   聘请一位深刻了解技术和商业经营的CEO(首席执行官)   ...

  2. aida64副屏监控_“遥信”在电力监控系统中的重要作用

    监控系统是变电站综合自动化的核心系统."四遥"也就是我们经常说的:遥测.遥信.遥控.遥调."四遥"是电力监控系统中最基本.最重要的功能,今天我们主要说一说&qu ...

  3. 高性能MySQL——查询性能优化

    在数据库设计中,如果查询写得很糟糕,即使库表结构设计再合理,索引再合理也无法实现高性能. 1.优化数据访问 查询性能低下最基本的原因是访问的数据太多.对于低效的查询,通过以下两步来分析总是很有效: 确 ...

  4. GIT命令行的一些基本操作

    目录 ■基础 ■扩展 (重要) ■★★★===git Hub 时的命令行操作 (登录git[命令行]) ・★★===他命令  // Git ・★★===查看多个版本之间修改的代码 ・★===去掉以及保 ...

  5. 案例分享 | 昭通装配式绿色建筑产业园EPC工程总承包项目管理实践

    以云南昭通高速装配式绿色建筑产业园(一期)EPC 工程总承包建设管理实践为背景,总结了在装配式绿色建筑产业园项目建设中以设计单位牵头的 EPC 工程总承包模式的项目管理经验,论述了所面对的主要问题与解 ...

  6. 【电子水尺】高精度测量、免布线、远程传输数据

    在智能防洪没有出现时,人们只能依靠传统的电子水尺进行水位测量,以便规划后续的防洪.治理措施,这样的测量方式不仅需要人员经常实地考察,还要人工统计数据,面对突发性事件,又难做到及时调度,合理应对. 电子 ...

  7. 记一次UDP接入服务的性能测试

    记一次UDP接入服务的性能测试 前言 背景简介 服务架构 测试需求 测试分析 测试工具 工具选型 Jmeter 配置 测试场景 测试及优化过程 数据接入服务 Nginx + Keepalived 总结 ...

  8. 企业认缴出资什么意思

    一.企业认缴出资什么意思 认缴制就是说在注册公司时,股东对认缴出资额和出资方式等在公司章程上自主约定,对注册资金在设立之初没有了缴付要求. 有限责任公司的注册资本为在公司登记机关登记的全体股东认缴的出 ...

  9. 大数据系列sql基础知识(史上最全,收藏起来)

    大数据系列文章,从技术能力.业务基础.分析思维三大板块来呈现,你将收获: 1. 提升自信心,自如应对面试,顺利拿到实习岗位或offer: 2.掌握大数据的基础知识,与其他同事沟通无障碍: 3. 具备一 ...

  10. 项目规划和方案设计文档的编写

    引言 在工作中,很多时候,我们都需要就一个问题提出一个解决方案,这时候,我们很可能需要产出一个文档来供大家讨论,并指导下一步工作计划.这个文档便是所谓的设计文档. 问题可大可小,形式上是否叫它为一个项 ...

最新文章

  1. 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》
  2. [转] Firefox 24.0中的插件激活提示
  3. java异常处理图片_Java处理图片时出现异常
  4. cxf环境搭建与第一个项目
  5. 这些BATJ必考的Java面试题,你都懂了吗?
  6. 计算机操作系统(3):操作系统的基本特征
  7. 福师2018计算机应用基础,中石油华东《计算机应用基础》2018年秋学期在线作业100分答案满分...
  8. vue光标插入内容_vue项目中在可编辑div光标位置插入内容的实现代码
  9. linux下 mysql主从备份
  10. 使用CleanMyMac的空间透镜功快速决策清理垃圾
  11. 计算机英语读音在线,computer是什么意思_computer翻译_读音_用法_翻译
  12. openGL中Phong 着色
  13. SAP运维管理平台系统
  14. 如何将屏幕截图从Nintendo Switch传输到计算机
  15. python用glob读取文件夹
  16. linux在目录前加前缀,linux中批量添加文件前缀的操作方法
  17. Window任务计划命令详解
  18. 计算机位的英语,计算机中位的英文名字为()
  19. 使用matplotlib绘制3D图像时插入图片
  20. 组件实战(一)——导航栏设计

热门文章

  1. 极具破坏力的Linux系统命令
  2. 读取文件的例子 IO
  3. iOS简单实现查看更多/收起的效果[最新]
  4. MSRA被曝停招国防七子及北邮学生
  5. 阿里开源的限流神器 Sentinel,轻松搞定接口限流!
  6. 微盟数据已经全面找回 并公布商家赔付计划
  7. [TJOI2015]弦论(后缀数组or后缀自动机)
  8. js 难点之原型理解
  9. C语言学习系列(六)存储类
  10. LeetCode: Minimum Time Difference