- 浏览: 189572 次
- 性别:
- 来自: 广州
文章分类
最新评论
联接可分为以下几类:
内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 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
内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 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
发表评论
-
sqlserver 计划任务 收缩数据库日志文件
2019-06-28 15:32 1064针对之前的语句做了整合,只有日志文件大于1000M时,才进行收 ... -
Sqlserver查询数据库文件大小和剩余空间
2019-06-28 14:27 946在MS Sql Server中可以能过以下的方法查询出磁盘空间 ... -
使用job对日志文件定期处理
2019-06-28 10:35 399use master go --更改数据库模式为简 ... -
根据当前日期往前推12个月得到每月月份及年份
2019-04-24 11:39 2950效果就是: col_name data_month ... -
查看数据库中每个表的空间大小及行数
2019-04-04 16:58 453create table #t (name varcha ... -
sql语句之根据起始结束日期获取每一天、周、月、年【转】
2019-03-20 15:45 1695得到两个时间之间的每一天 create function ... -
SQL 多列转换为一行【转】
2019-03-14 11:56 1153--创建测试表 IF OBJECT_ID('test') ... -
sqlserver update或者Delete误操作恢复方法---【验证】
2018-11-08 12:32 2260高手具体方法: 原文地址:http://blog.csdn. ... -
SQL并发的问题
2018-01-15 15:55 560参考文献: https://www.cnblogs.com/C ... -
sql函数应用简单举例
2017-11-24 16:25 543返回某个字段 create function getran ... -
sql 生成不重复的随机数
2017-11-24 15:13 2069--创建视图(因为在函数中无法直接使用newid()) ... -
sql 上个月,下个月时间处理函数
2017-11-21 15:52 2959--上月的第一天 SELECT CONVERT(CHAR(1 ... -
删除当前库中所有表记录
2011-10-04 20:45 860--先禁用所有外键约束 exec sp_msforeac ... -
因为文件组primary已满,未能为数据库XX对象XX分配空间
2011-02-18 17:10 16061.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理 ... -
net use 发生系统错误67,找不到网络名
2010-12-29 10:56 16734局域网中有两台电脑 A ... -
反思SQL的or连接词
2010-12-17 18:04 1124下午在调试程序的时候一个诡异的现象,删除单据后被删除的单据依然 ... -
尝试在数据库 5 中提取逻辑页 (1:1640) 失败。该逻辑页属于分配单元XXX ,而非 XXX。
2010-12-02 16:15 4234此信息表明数据库或表 已经部分损坏可以通过以下步骤尝试修复: ... -
win7 安装sql2000
2010-11-22 11:56 1405win7下安装sql2000的要点: 1、以管理员身份运行 m ... -
数据库日志已满
2010-11-09 13:37 835今天去查询历史库存表,发现6天的记录都没有被自动保存,运行备份 ... -
关于解决SQLServer 2005安装时的COM+目录要求问题
2010-09-06 21:23 12531、开户MSDTC服务 开始-运行,输入cmd后回车,在命令提 ...
相关推荐
在电子商务系统中,SQL语句的内联外联可以用来连接多个表,例如订单表、客户表、产品表等,以便进行订单管理和客户管理。 四、SQL语句的内联外联经典面试题 4.1 什么是SQL语句的内联外联? 答案:SQL语句的内联...
如果我们要找出同时存在于A表和B表中的用户卡号,可以使用以下SQL语句: ```sql SELECT A.cardid FROM A INNER JOIN B ON (A.cardid = B.cardid); ``` 执行上述SQL语句后,结果只包括了同时存在于A表和B表中的卡号...
上述SQL语句中使用了`INNER JOIN`关键字,连接`Employees`表和`Orders`表,根据ID字段匹配并返回员工姓名和对应订单的产品信息。 #### 3. 外联接(Outer Join) 外联接分为左外联接、右外联接和全外联接。其中,左...
总结来说,SQL的高级查询语句是数据管理的关键技能,包括内联查询、左外联查询和嵌套查询。它们提供了更强大的数据处理能力,能够处理更复杂的查询需求,帮助我们从数据库中抽取更精确、更有价值的信息。通过实践和...
本文档总结了 SQL 中常用的增删改查语句,包括基本语句、高级查询语句、函数查询语句、事务和存储过程等。 一、Insert 插入语句 Insert 语句用于将数据插入到数据库表中。基本语法为: Insert into 表名(列名)...
例如,员工信息表中的员工和管理者的关系,可以使用以下SQL语句来查询: SELECT worker.name || 'work for' || manager.name FROM employees worker, employees manager WHERE worker.manager_id = manager....
在本节中,我们将从数据库基础、SQL 语言、视图、完整性约束、第三范式、ER 模型、索引、事务、锁、死锁、存储过程、触发器 等方面总结 SQL 和 ORACLE 面试题的知识点。 数据库基础 * 数据抽象:物理抽象、概念...
例如,如果我们有表格`t_institution`和`t_teller`,并希望找到所有机构编号与当前柜员关联的记录,可以使用如下语句: ```sql SELECT t_institution.*, t_teller.* FROM t_institution INNER JOIN t_teller ON t_...
内联和外联是 SQL 语句中的连接类型,用于将两个或多个表中的数据组合起来。 1. 内连接(INNER JOIN):仅将两个表中满足连接条件的行组合起来作为结果集。 2. 外连接: * 左(外)连接(LEFT JOIN):在内连接的...
2.2 基本的SQL语句/32 2.2.1 使用SELECT查询数据/33 2.2.2 使用INSERT插入数据/34 2.2.3 使用UPDATE更新数据/35 2.2.4 使用DELETE删除数据/36 2.3 联接查询/37 2.3.1 内联接(INNER JOIN)/37 2.3.2 外联接(OUTER ...
SQL Server中的CROSS APPLY和OUTER APPLY是两种特殊的表运算符,它们在2005版本及以上引入,主要用于处理复杂的数据转换和联接操作。这些运算符的主要区别在于如何处理右表表达式的结果。 CROSS APPLY用于执行内联...
### 金蝶Cloud产品销售价格查询SQL语句解析 #### 背景介绍 金蝶Cloud作为一款先进的企业管理软件,提供了...此外,通过灵活运用SQL语句中的联接、排序及筛选等功能,可以进一步扩展查询范围,以满足不同场景下的需求。
主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理、可编程对象等内容。 书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中...
主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理、可编程对象等内容。 书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中...
第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 SQL SERVER体系结构 1.3 创建表和定义数据完整性 1.4 总结 第2章 单表查询 2.1 SELECT语句的元素 2.2 谓词和运算符 2.3 CASE表达式 2.4 NULL...
在 SQL Server 中,使用表的别名可以提高语句的可读性,并简化 Transact-SQL 脚本维护。例如,在联接一个表和它自身时,必须使用别名。给字段起名时,使用多表联接时,必须慎重地指定字段名,因为任何数据库对象名称...
开始使用SQL Server 2008中的数据库和Transact-SQL - 数据库概述:介绍SQL Server 2008数据库的基本结构和组成部分。 - Transact-SQL简介:解释Transact-SQL语言的特性和使用场景。 - 查询工具:演示如何使用SQL ...
- **外部联合与内部联合**:外联接保留未匹配的行,内联接仅包含匹配的行。 - **表的自我联合**:同一个表的不同实例之间的联接。 #### 第七天:子查询 - **建立一个子查询**:使用子查询可以在主查询中嵌入另一个...