Oracle 左连接 left join、右连接right join说明

Oracle 左、右连接

+ 在等号 左边表示右连接  获取右表所有记录,即使左表没有对应匹配的记录。

+ 在等号 右边表示左连接  获取左表所有记录,即使右表没有对应匹配的记录。

例子:

select e.empno,e.name,d.deptno,d.dname,d.loc

from emp e,dept d

where e.deptno(+) = d.deptno

右连接

已知  emp表中没有40,dept表中有40,部门编号为40的没有员工。

使用右连接  from emp e right join dept d on e.deptno = d.deptno   right join on  和 +在等号左边效果相同

会获取dept表的所有记录,即便emp中没有对应匹配的40部门的记录

select  e.empno,e.ename,s.empno mgr_no,s.ename mgr_name

from emp e,emp s

where e.mrg = s.empno(+)

已知 empno 为7839 的没有mrg ,编号为7839的员工没有上司

左连接

会获取左表的所有记录,即便右表没有匹配的记录

左连接:以左表为基准

右连接:以右表为基准

时间: 2024-10-27 10:29:07

Oracle 左连接 left join、右连接right join说明的相关文章

mysql多表查询方法(left join(左连接),right join (右连接),inner join (内连接)的区别)

表A记录如下:  aID aNum  1 a20050111  2 a20050112  3 a20050113  4 a20050114  5 a20050115  表B记录如下:  bID bName  1 2006032401  2 2006032402  3 2006032403  4 2006032404  8 2006032408  创建这两个表SQL语句如下:  CREATE TABLE a  aID int( 1 ) AUTO_INCREMENT PRIMARY KEY ,  a

Oracle表与表之间的连接方式(内连接:inner join 、外连接 全连接: full outer join、左连接:left outer join 、右连接:right outer join、自然连接:natural join)

1 --内连接:INNER JOIN 它表示返回两个表或记录集连接字段的匹配记录,表示两个表中相互包含的部分 2 select * from student inner join sc on student.sno=sc.sno; 3 --外连接(全连接):包含左.右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行.不符合条件的,以空值代替. 4 --全连接:表示两个表组合在一起,左右不相匹配时使用空值替换 5 select * from student full outer join

Oracle和sql中左连接和右连接

Oracle 中可以用(+)来代替左连接和右连接,有意思的事加号在左面是右连接,加号在右面是做链接,如下 SELECT a.*, b.* from a.X(+) = b.X就是一个右连接,等同于select a.*, b.* from a right join b on a.X=b.X SELECT a.*, b.* from a.X = b.X(+)就是一个左连接,等同于select a.*, b.* from a left join b on a.X=b.X 下面通过来自w3school的截

mysql 内连接 左连接 右连接 外连接

mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| ID | int(11) | NO | PRI | 0 | || NAME | varchar(16) | YES | | NULL | || A

mysql之左连接与右连接

http://www.cnblogs.com/zzwlovegfj/archive/2012/06/23/2559593.html ****************************************************************** 左连接: select 列1,列2,列N from tableA left join tableB on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看] where,havi

左连接、右连接、交叉连接、全外连接

第一部分.连接查询 一.内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值.内连接分三种: 1.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列. 2.不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值.这些运算符包括>.>=.<=.<.!>.!<和<>. 3.自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用

SQL: 左连接,右连接,内连接

例子: ---------------------- --------------------------- a表 id name b表 id job parent_id 1 张三             1 23 1 2 李四 2 34 2 3 王武 3 34 4 ---------------------- ---------------------------- a.id同parent_id   存在关系 原表如上 1.左连接: 官方解释:left join(左连接)返回包括左表中的所有记

Oracle内连接、外连接、右外连接、全外连接小总结

数据库版本:Oracle 9i 表TESTA,TESTB,TESTC,各有A, B两列 A B 001 10A 002 20A A B 001 10B 003 30B A B 001 10C 004 40C 连接分为两种:内连接与外连接. A.内连接 内连接,即最常见的等值连接,例: SELECT * FROM TESTA,TESTBWHERE TESTA.A=TESTB.A 结果 A B A B 001 10A 001 10B B.外连接 外连接分为左外连接,右外连接和全外连接. 1.  左外

SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)

原文链接:http://www.powerxing.com/sql-join/ 总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表(sale_detail)中没有匹配的行. right outer join 右连接,返回右表中的所有记录,即使在左表中没有记录与它匹配 full outer join 全连接,返回左右表中的所有记录 在表中存在至少一个匹配时,inner join 返回行. 关键字inner可省略. 具体可以看sta

左连接,右连接,内连接,外连接, join, left join, right join ,mysql ,oracle

2016-6-12 22:35:51 工作用了一年多的oracle,最近在学mysql, 仔细想想 各种连接,感觉这些概念还是蛮烦人的! 最近整理了一下,分享一下自己的理解,有些东西是借鉴网上并自己吸收了的. 1.不管是什么连接,oracle和mysql的原理是一模一样的,只是有些写法不一样而已.说到写法,这里提一下, select * from A, B where a.filed1=b.filed2; --这是第1种写法, 内连接,这样写,很方便, oracle和mysql通用 select