数据库中有两种联接:内连接,外连接。
2013-05-31 14:31
246 查看
数据库中有两种联接:内连接,外连接。
一、其中内连接就是一般的相等连接。
如:select * from a, b where a.id = b.id
二、外连接
对于外连接,可以分为左外连,右外连,全外连。详细介绍如下:
1. LEFT OUTER JOIN:左外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。
2. RIGHT OUTER JOIN:右外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。
3. FULL OUTER JOIN:全外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。
你可以自己建两张表,到库里看看到底是怎样的数据,这样你就会很容易理解了!
////
左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空
======================================================================================
一、其中内连接就是一般的相等连接。
如:select * from a, b where a.id = b.id
二、外连接
对于外连接,可以分为左外连,右外连,全外连。详细介绍如下:
1. LEFT OUTER JOIN:左外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。
2. RIGHT OUTER JOIN:右外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。
3. FULL OUTER JOIN:全外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。
你可以自己建两张表,到库里看看到底是怎样的数据,这样你就会很容易理解了!
////
左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空
======================================================================================
左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空
你是要弄清楚区别在什么地方还是单纯想要文字说明 文字说明的楼上说了一大堆了,不说了。 弄个例题,直观一点。两个表: --表stu --表exam id name Id grade 1, Jack 1, 56 2, Tom 2, 76 3, Kity 11, 89 4, nono 内连接(显示两表id匹配的) select stu.id,exam.id,stu.name, exam.grade from stu inner join exam on stu.id=exam.id stu.id exam.id name grade -------------------------------- 1 1 Jack 56 2 2 Tom 76 左连接(显示join 左边的表的所有数据,exam只有两条记录,所以stu.id,grade 都用NULL 显示) select stu.id,exam.id,stu.name, exam.grade from stu left join exam on stu.id=exam.id 1 1 Jack 56 2 2 Tom 76 3 NULL Kity NULL 4 NULL nono NULL 右连接(与作连接相反,显示join右边表的所有数据) select stu.id,exam.id,stu.name, exam.grade from stu right join exam on stu.id=exam.id 1 1 Jack 56 2 2 Tom 76 NULL 11 NULL 89
相关文章推荐
- 两种数据库连接方式
- SpringBoot建立数据库连接JdbcTemplate和Mybatis两种方式
- asp.net数据库配置文件连接字符串的两种方式
- Python连接数据库的两种方式
- JAVA连接数据库的两种形式-源代码
- php的mysqli数据库连接的两种方法
- C#连接数据库的两种方法
- php+mysqli数据库连接的两种方式
- web.config 保存(Access)数据库连接字符串的两种方法
- JSP连接数据库的两种方式:Jdbc-Odbc桥和Jdbc直连
- ASP 连接 MySQL 数据库两种方法
- java application应用程序 使用JDBC和proxool两种方式连接数据库 的测试程序代码
- php+mysqli数据库连接的两种方式
- JDBC连接数据库两种方式
- java application应用程序 使用JDBC和proxool两种方式连接数据库 的测试程序代码
- .net连接两种数据库的设置....
- 关于数据库SCHEMA用户与应用中连接用户分离的两种方法简介及评估
- java使用url和tns两种方式连接数据库执行存储过程
- 通达OA 新旧两种数据库连接方式
- Ado.Net连接数据库的两种方式