博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle子查询和多表查询
阅读量:6279 次
发布时间:2019-06-22

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

多表查询需要用到表的连接

连接可以分为:(自行百度)

  交叉连接(数字逻辑的笛卡尔积,不做解释)

    等值连接

      例如:select * from t_a, t_b where t_a.xx = t_b.xx

    不等值连接

      例如:select * from t_a, t_b where t_a.sal >= t_b.sal

  内连接

    例如:select * from t_a inner join t_b on t_a.xx = t_b.xx

    内连接写法和等值连接不同,但是效果是一样的,所以随意使用一种即可。

  左外连接(左连接)

    内连接是把非空的行给连接在一起,形成一个新表。而左连接是以第一张表为基础,把符合条件的字段补充到第一张表上。

    语句:

      标准写法:select * from t_a inner left join t_b on t_a.xx = t_b.xx;

      Oracle自创:select * from t_a, t_b where t_a.xx = t_b.xx(+);

  右外连接(右连接)

    与右连接一样,方向反过来。

      select * from t_a, t_b where t_a.xx(+) = t_b.xx;

  自连接

    自身与自身相连接

    例如:select * from t_a, t_a t_a2 where t_a.xx = t_a2.yy;

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

子查询(当查询条件为不确定值时必须使用子查询)

可以分为:

  常规子查询:

    先执行子查询,然后执行主查询,子查询参数与主查询无关。

    例如:select * from users where salary > (select avg(salary) from users)

  相关子查询:

    主查询的某些条件当作参数传入子查询,然后执行查询。

    例如:select * from users u where salary > (select avg(salary) from users where u.部门 = users.部门 order by 部门)

转载于:https://www.cnblogs.com/webyyq/p/7629280.html

你可能感兴趣的文章
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>