左右连接实际说是我们联合查询的结果以哪个表为准~
1. 内连接很简单
select A.*, B.* from A,B where A.id = B.id
select A.*, B.* from A inner join B on A.id = B.id
以上两句是完全等价的
2. 左外连接
select distinct(p.person_id) from t_pbase_info p, t_pcontact_info c where p.person_id = c.person_id(+)
select distinct(p.person_id) from t_pbase_info p left join t_pcontact_info c on p.person_id = c.person_id
以上两句是完全等价的
3. 右外连接
select distinct(p.person_id) from t_pbase_info p, t_pcontact_info c where p.person_id(+) = c.person_id
select distinct(p.person_id) from t_pbase_info p right join t_pcontact_info c on p.person_id = c.person_id
以上两句是完全等价的
我们以右边 t_pcontact_info 表为准,则左表( t_pbase_info )中的记录只有当其ID在右边(t_pcontact_info )中存在时才会显示出来,没有相应数据时则用NULL代替
也就是说在oracle中+号放在=右边相当于左连接,而+号放在=左边相当于右连接
4、交叉连接(完全连接)cross join 不带 where 条件的
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生6*3=18条记录)
select * from t_pbase_info p cross join t_pcontact_info c
等价于 select * from t_pbase_info p ,t_pcontact_info c
5、自连接
个部门表,里面存放了部门及其上级部门,但都放在同一张表中,我们假设现在需要用SQL查询出各部门及其上级部门!
这里除了使用自连接外,还使用了左连接,因为省电力没有上级部门,他是老大,如果使用内连接,就会把这条记录过滤掉,因为没有和他匹配的上级部门。
自连接用的比较多的就是对权形结构的查询!类似上表!
分享到:
相关推荐
这是Oracle中内连接的基本用法。 #### 内连接与WHERE子句的区别: ```sql SELECT e.ename, d.dname, e.deptno FROM emp_hiloo e INNER JOIN dept_hiloo d ON e.deptno = d.deptno AND e.salary > 3000; ``` 在这...
本文将深入探讨Oracle的JOIN用法,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)以及自然连接(NATURAL JOIN),并结合实例进行说明。 1. **内连接(INNER JOIN)**: 内连接返回两个表中满足特定...
根据连接方式的不同,可以分为内连接(Inner Join)、左外连接(Left Outer Join)、右外连接(Right Outer Join)和全连接(Full Outer Join)。每种连接类型都有其特定的应用场景和特点。 #### 二、内连接 **...
本文将围绕“自连接外连接”这一主题展开,详细解析Oracle数据库中连接查询的具体实现方法,包括内连接、外连接以及自连接的概念、应用场景及语法示例。 #### 内连接(Inner Join) 内连接主要用来合并两个或多个...
- 左连接(Left Outer Join):返回驱动表的所有记录,即使在被驱动表中没有匹配项。 - 右连接(Right Outer Join):返回被驱动表的所有记录,即使在驱动表中没有匹配项。 - 全连接(Full Outer Join):返回驱动表...
4. 多表查询:JOIN操作用于连接两个或更多表,如INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)和FULL JOIN(全连接),根据条件合并数据。 三、数据与事务控制 1. CRUD操作:CREATE(创建)、...
Oracle数据库中的左连接(LEFT JOIN)是一种用于合并两个或更多表的数据的SQL查询方法,它返回左表(第一个表)的所有记录,即使右表(第二个表)中没有匹配的记录。"+"加号在旧版Oracle SQL中是表示左连接的一个...
Oracle支持三种类型的外连接:左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)。 - **左外连接(Left Outer Join)**:返回左表中的所有行,以及右表中与左表相匹配的行...
外连接分为左外连接、右外连接和全外连接三种。 - **左外连接 (Left Outer Join)**: - **定义**: 返回左表中的所有记录,即使在右表中没有匹配的记录也会显示出来。 - **语法**: ```sql SELECT e.last_name, e....
3. 连接操作:Oracle数据库支持多种连接操作,如INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等。了解连接操作的使用场景和用法是非常重要的。 4. 子查询:子查询是SQL语句中的一种重要特性,允许在SELECT...
这与内连接(INNER JOIN)不同,内连接只返回两边有匹配的记录,而左连接(LEFT JOIN)或右连接(RIGHT JOIN)则只返回一方的所有记录和另一方的匹配记录。 实现全外连接的一种方法是使用UNION ALL结合LEFT JOIN和...
- 使用逗号`,`分隔的表名列表,并在`WHERE`子句中指定连接条件,这是在Oracle早期版本中使用的方法。 - 使用`USING`子句,当连接的表有同名列时,可以简化连接条件的编写。 ### 示例代码 下面是一个使用等值连接的...
这包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL OUTER JOIN)。此外,子查询(Subqueries)也是一个重要的主题,它们在主查询内部运行,可以用于比较、过滤或分组数据。 在...
其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...
7. **联接(JOIN)操作**:介绍了内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)的概念和用法,以及自连接的应用。 8. **子查询**:子查询在SQL中的应用,包括单行子查询...
Oracle支持多种类型的联接,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL OUTER JOIN)。以内连接为例: ```sql SELECT t1.column1, t2.column2 FROM table1 t1 INNER JOIN ...
- Oracle 使用 `(+)` 符号来表示左连接,表示即使右侧表中的记录不存在也会返回左侧表的所有记录。 4. **RIGHT JOIN**: - SQL Server:`SELECT * FROM t1 RIGHT JOIN t2 ON t1.c1 = t2.c1;` - Oracle:`SELECT ...