SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
来源:互联网 发布:logo编程软件 编辑:程序博客网 时间:2024/05/21 15:02
左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。
左联接的结果集包括 LEFT 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
右联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行。
连接可分为以下几类:
内连接。(典型的连接运算,使用像 = 或 <> 之类的比较运算符)。包括相等连接和自然连接。
内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。
外连接。外连接可以是左向外连接、右向外连接或完整外部连接。
在FROM子句中指定外连接时,可以由下列几组关键字中的一组指定:
LEFT JOIN 或 LEFT OUTER JOIN。
左向外连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外连接是左向外连接的反向连接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
FULL JOIN 或 FULL OUTER JOIN。
完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
交叉连接。交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积。
例如,下面的内连接检索与某个出版商居住在相同州和城市的作者:
USE pubs
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a INNER JOIN publishers AS p
ON a.city = p.city
AND a.state = p.state
ORDER BY a.au_lname ASC, a.au_fname ASC
FROM 子句中的表或视图可通过内连接或完整外部连接按任意顺序指定;但是,用左或右向外连接指定表或视图时,表或视图的顺序很重要。有关使用左或右向外连接排列表的更多信息,请参见使用外连接。
例子:
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在 关系
??内连接
select a.,b. from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
? 左连接
select a.,b. from a left join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null
? 右连接?
select a.,b. from a right join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
? 完全连接 ?
select a.,b. from a full join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
3 王武 null
?
?
SQL code
DECLARE @TA TABLE (IDA INT,VA VARCHAR(10)) DECLARE @TB TABLE (IDB INT,VB VARCHAR(10)) INSERT INTO @TA
SELECT 1,’AA’ UNION SELECT 2,’BC’ UNION SELECT 3,’CCC’ INSERT INTO @TB SELECT 1,’2’ UNION SELECT 3,’58’
UNION SELECT 4,’67’
–内联接简单写法
SELECT
转自:http://blog.knowsky.com/190093.htm
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别 .
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-内连接、左外连接、右外连接、全连接
- SQL的四种连接:内连接 左外连接 右外连接 全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- 机器学习实战笔记(4) 形象线性回归的理解和实现
- axel 命令-网络应用之一
- 那些年错过的蓝桥杯(四)
- TensorFlow优化之滑动平均模型
- ABP官方文档(九)【缓存管理】
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
- 一个exe程序用cmd运行可以,但是用sysem()函数调用执行却出错的问题的解决方案
- ABP官方文档(十)【日志管理】
- ABP官方文档(十一)【设置管理】
- Array 对象方法
- 转载!Tensorflow函数——tf.set_random_seed(seed)
- ABP官方文档(十二)【时间与时区设置】
- ABP官方文档(十三)【对象之间的映射】
- 作业4