oracle的full join关联的表限制条件在on后面与限制在子查询的结果是不一样
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle的full join关联的表限制条件在on后面与限制在子查询的结果是不一样相关的知识,希望对你有一定的参考价值。
参考技术A create table test_a(id number,
name varchar2(10)
);
create table test_b(
id number,
name varchar2(10)
);
select * from test_a a full join test_b b on a.id=b.id and b.id=3 order by a.id,b.id;
select * from test_a a full join (select * from test_b where id=3) b on a.id=b.id order by a.id,b.id;
如果left join的情况查询的结果数据是一致的:
select * from test_a a left join test_b b on a.id=b.id and b.id=3 order by a.id,b.id;
select * from test_a a left join(select * from test_b where id=3) b on a.id=b.id order by a.id,b.id;
Oracle 当两个表关联时,用where条件关联快还是用join on关联快,还有其他啥区别
Oracle 当两个表关联时,用where条件关联快还是用join on关联快,还有其他什么区别吗?
一样的吧如果用where是老语法的
用join是新语法
性能都一样 数据库优化器会自动识别
即使where后面加了很多其它条件
建议使用join on
因为写where如果忘记写关联条件 就成笛卡尔积了
join on 是个好的习惯能避免这种不必要的错误出现 参考技术A 这2个,只是2种不同的写法,只要索引运用得当,没有区别。
ORACLE 在执行前, 会对SQL语句进行预编译和优化的, 最终的执行顺序是一致的。 参考技术B 用主键和外键相关联
primary key:主键
foreign key:外键
PK:主键列,要求取值唯一且非空
FK:外键列,取值是相关联表的对应列的值,可以为空 参考技术C 没区别,建议用join on,通用.
以上是关于oracle的full join关联的表限制条件在on后面与限制在子查询的结果是不一样的主要内容,如果未能解决你的问题,请参考以下文章
Oracle表与表之间的连接方式(内连接:inner join 外连接 全连接: full outer join左连接:left outer join 右连接:right outer join(代码
Oracle 当两个表关联时,用where条件关联快还是用join on关联快,还有其他啥区别
SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)