谈谈oracle里的join、left join、right join
create table l as
select 'left_1' as str,'1' as v from dual union all
select 'left_2' ,'2' as v from dual union all
select 'left_3' ,'3' as v from dual union all
select 'left_4' ,'4' as v from dual ;
create table r as
select 'right_3' as str,'3' as v, 1 as status from dual union all
select 'right_4' as str,'4' as v, 0 as status from dual union all
select 'right_5' as str,'5' as v, 0 as status from dual union all
select 'right_6' as str,'6' as v, 0 as status from dual ;
select * from l; --where l.v not in (select r.v from r )
select * from r
--1. inner join 返回两表相匹配的数据 即 交集
select l.str as left_str,r.str as right_str from l
inner join r on l.v=r.v
order by 1,2;
select l.str as left_str,r.str rigth_str from l,r
where l.v=r.v
order by 1,2;
--2.left join 左表为主表,左表返回全部数据,右表只返回与左表相匹配的数据
select l.str as left_str,r.str right_str from l
left join r on l.v=r.v
order by 1,2;
select l.str as left_str,r.str as right_str from l,r
where l.v=r.v(+)
order by 1,2;
select l.str as left_str,r.str as right_str from l,r
where l.v=r.v
order by 1,2;
--3.right join 右表为主表,左表只返回与右表相匹配的数据
select l.str as left_str,r.str as right_str from l
right join r on l.v=r.v
order by 1,2;
select l.str as left_str,r.str right_str from l,r
where l.v(+)=r.v
order by 1,2;
--4. 左右表均返回全部的数据,但是只有相匹配的数据显示在一行,非匹配的数据只显示一个表的数据
select l.str as left_str,r.str as right_str from l
full join r on r.v=l.v
order by 1,2;
谈谈oracle里的join、left join、right join的更多相关文章
- 谈谈oracle里的join、left join、right join、full join-版本2
--1.left join 左表为主表,左表返回全部数据,右表只返回与左表相匹配的数据select t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje ...
- 06 hash join (Oracle里的哈希连接原理)
hash join (Oracle里的哈希连接原理) 2015年09月25日 17:00:28 阅读数:2188 哈希连接(HASH JOIN)是一种两个表在做表连接时主要依靠哈希运算来得到连接结果集 ...
- Oracle中join left,join right,inner join,(+) 等
Oracle中join left,join right,inner join,(+) 等 博客分类: Oracle 建表create table TEST1create table TEST1( ...
- Oracle 表的连接方式(1)-----Nested loop join和 Sort merge join
关系数据库技术的精髓就是通过关系表进行规范化的数据存储,并通过各种表连接技术和各种类型的索引技术来进行信息的检索和处理. 表的三种关联方式: nested loop:从A表抽一条记录,遍历B表查找匹配 ...
- Oracle性能优化之 Oracle里的优化器
优化器(optimizer)是oracle数据库内置的一个核心子系统.优化器的目的是按照一定的判断原则来得到它认为的目标SQL在当前的情形下的最高效的执行路径,也就是为了得到目标SQL的最佳执行计划. ...
- 基于Oracle的SQL优化(崔华著)-整理笔记-第2章“Oracle里的执行计划”
详细介绍了Oracle数据里与执行计划有关的各个方面的内容,包括执行计划的含义,加何查看执行计划,如何得到目标SQL真实的执行计划,如何查看执行计划的执行顺序,Oracle数据库里各种常见的执行计划的 ...
- oracle里的查询转换
oracle里的查询转换的作用 Oracle里的查询转换,有称为查询改写,指oracle在执行目标sql时可能会做等价改写,目的是为了更高效的执行目标sql 在10g及其以后的版本中,oracle会对 ...
- Oracle里的执行计划
1 执行计划的查看 1 explan plan 2 dbms_xplan包 3 sqlplus中 set autot 4 10046 5 awr报告 6一些现成的脚本 7 10053 常见的就前4种 ...
- 三大表连接方式详解之Nested loop join和 Sort merge join
在早期版本,Oracle提供的是nested-loop join,两表连接就相当于二重循环,假定两表分别有m行和n行 如果内循环是全表扫描,时间复杂度就是O(m*n) 如果内循 ...
随机推荐
- kitkat-s5p4418drone 记录
查看帮助: ./device/nexell/tools/build.sh -h 编译u-boot: ./device/nexell/tools/build.sh -b drone2 -t u ...
- macOS Sierra 10.12版本 显示隐藏文件
1.显示隐藏文件 打开Terminal 输入:defaults write com.apple.finder AppleShowAllFiles -bool true 再输入: killall Fin ...
- java多线程(六)
使用Runnable接口创建线程 Runnable接口 只有一个run()方法 Thread类实现了Runable接口 便于多个线程共享资源 Java不支持多继承,如果已经继承了某个基类,便要实现Ru ...
- 77. Combinations(回溯)
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. Example: I ...
- 23TCP通信
.pro 文件中加入:QT+=network 在Qt中实现TCP/IP服务器端通信的流程: 1.创建监听套接字,QTcpServer 2.将监听套接字设置为监听模式, listen 3.等待并接受客户 ...
- 2018 China Collegiate Programming Contest Final (CCPC-Final 2018)
Problem A. Mischievous Problem Setter 签到. #include <bits/stdc++.h> using namespace std; #defin ...
- poj1329 Circle Through Three Points
地址:http://poj.org/problem?id=1329 题目: Circle Through Three Points Time Limit: 1000MS Memory Limit: ...
- Arthur and Brackets
n<605设计出n对夸号 给出n个条件每个条件为[l,r] 表示第i对夸号右夸号离左夸号的距离,然后夸号的右夸号出现的顺序必须按照给的顺序 出现, 那么如果存在就输出否则输出impossilb ...
- jQuery中的prop和attr区别
最近在做一个项目用jq时发现一个问题 在谷歌中可以正常出效果 但是在火狐中就是不行 就是这个prop和attr 之前用的是attr方法 但是在火狐中不出效果 于是特意看了两者的区别 主要 ...
- surface知识点
SurfaceView和TextureView 在学习直播的过程遇到一个问题:连麦场景下能够支持大小窗口切换(即小窗口变大,大窗口变小),大窗口是TextView(用于拉流显示),而小窗口是Surfa ...