时间:2021-07-01 10:21:17 帮助过:34人阅读
Oracle的左连接和右连接 在Oracle PL-SQL中,左连接和右连接以如下方式来实现 查看如下语句: SELECT emp_name,dept_name FORMEmployee,Department WHERE Employee.emp_deptid( + ) = Department.deptid 此SQL文使用了右连接,即(+)所在位置的另一侧为连接的
Oracle的左连接和右连接 | |
查看如下语句:
SELECT emp_name, dept_name 反之:
SELECT emp_name, dept_name |
++++++++++++++++++++++++++++++++++++++++++MYSQL
A left join B 的连接的记录数与A表的记录数同
A right join B 的连接的记录数与B表的记录数同
A left join B 等价B right join A
table A:
Field_K, Field_A
1 a
3 b
4 c
table B:
Field_K, Field_B
1 x
2 y
4 z
select a.Field_K, a.Field_A, b.Field_K, b.Field_B
from a left join b on a.Field_K=b.Field_K
Field_K Field_A Field_K Field_B
---------- ---------- ---------- ----------
1 a 1 x
3 b NULL NULL
4 c 4 z
select a.Field_K, a.Field_A, b.Field_K, b.Field_B
from a right join b on a.Field_K=b.Field_K
Field_K Field_A Field_K Field_B
---------- ---------- ---------- ----------
1 a 1 x
NULL NULL 2 y
4 c 4 z
++++++++++++++++++++++++++++++++++++++
这样的。
table1 table2
id,sex1 id sex2
a 1 a 4
b 0
select id,sex1,sex2 from table1 left join table2 on table1.id=table2.id
则,
id sex1 sex2
a 1 4
b 0 null
也就是说left join 则连接左边表中所有记录都会出现,如果根据连接条件在table2中找不到相关记录,则显示为null
right join 则显示右边表中的全部记录。
inner join 则只有符合条件的记录才会出现在结果集中