-
SQL Server 2008教程之多表联合查询语法
多表联合查询语法:
[ FROM { <table_source> } [ ,...n ] ]
<table_source> ::=
{
table_or_view_name ..表或视图名
[ [ AS ] table_alias ] ..表或视图别名
[ WITH ( < table_hint > [ [ , ]...n ] ) ] ..指定查询优化器
| rowset_function [ [ AS ] table_alias ] ..指定行集函数
[ ( bulk_column_alias [ ,...n ] ) ] ..替代结果集内的列名
| user_defined_function [ [ AS ] table_alias ] ..指定表值函数
| OPENXML <openxml_clause> ..通过XML查询
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ] ..子查询
| <joined_table>
}
<joined_table> ::= ..多表联合查询
{
<table_source>
<join_type> ..联合类型
<table_source>
ON <search_condition> ..联合条件
| <table_source> CROSS JOIN <table_source>
| left_table_source { CROSS | OUTER } APPLY right_table_source
| [ ( ] <joined_table> [ ) ]
}
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
多表联合查询语句(JION=INNER JION,内部链接)
SELECT 产品ID,产品名称,类别名称,类别.类别ID
FROM 产品 JOIN 类别
ON 产品.类别ID = 类别.类别ID
SELECT 产品.产品名称, 订单明细.单价, 订单明细.数量,
订单明细.折扣, 订单.订购日期
FROM 订单明细 JOIN
订单 ON 订单明细.订单ID = 订单.订单ID JOIN
产品 ON 订单明细.产品ID = 产品.产品ID
SELECT 产品.产品名称, 订单明细.单价, 订单明细.数量,
订单明细.折扣, 订单.订购日期
FROM (订单明细 JOIN 订单 ON 订单明细.订单ID = 订单.订单ID )
JOIN 产品 ON 订单明细.产品ID = 产品.产品ID
SELECT *
FROM 库存信息 INNER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
多表联合查询语句(LEFT OUTER JOIN= LEFT JOIN,包含“INNER JION”的同时,左边表的所有记录都要出现)
SELECT *
FROM 库存信息 LEFT OUTER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
多表联合查询语句(RIGHT OUTER JOIN = RIGHT JOIN, 包含“INNER JION”的同时,右边表的所有记录都要出现)
SELECT *
FROM 库存信息 RIGHT OUTER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
多表联合查询语句(FULL OUTER JOIN = FULL JOIN, 包含“INNER JION”的同时,左右边表的所有记录都要出现)
SELECT *
FROM 库存信息 FULL OUTER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
多表联合查询语句(CROSS JOIN,左表和右表的所有记录进行交叉匹配)
SELECT *
FROM 库存信息 CROSS JOIN 订单信息
表JION自身
SELECT 雇员.雇员ID, 雇员.姓氏, 雇员.名字, 雇员.职务,
主管.姓氏 AS 主管姓氏, 主管.名字 AS 主管名字,
主管.职务 AS 主管职务
FROM 雇员 LEFT OUTER JOIN
雇员 AS 主管 ON 雇员.上级 = 主管.雇员ID
说明:“雇员”表中有个字段是“雇员.上级”,该查询语句表示组合查询雇员和雇员的上级信息。
[ FROM { <table_source> } [ ,...n ] ]
<table_source> ::=
{
table_or_view_name ..表或视图名
[ [ AS ] table_alias ] ..表或视图别名
[ WITH ( < table_hint > [ [ , ]...n ] ) ] ..指定查询优化器
| rowset_function [ [ AS ] table_alias ] ..指定行集函数
[ ( bulk_column_alias [ ,...n ] ) ] ..替代结果集内的列名
| user_defined_function [ [ AS ] table_alias ] ..指定表值函数
| OPENXML <openxml_clause> ..通过XML查询
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ] ..子查询
| <joined_table>
}
<joined_table> ::= ..多表联合查询
{
<table_source>
<join_type> ..联合类型
<table_source>
ON <search_condition> ..联合条件
| <table_source> CROSS JOIN <table_source>
| left_table_source { CROSS | OUTER } APPLY right_table_source
| [ ( ] <joined_table> [ ) ]
}
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
多表联合查询语句(JION=INNER JION,内部链接)
SELECT 产品ID,产品名称,类别名称,类别.类别ID
FROM 产品 JOIN 类别
ON 产品.类别ID = 类别.类别ID
SELECT 产品.产品名称, 订单明细.单价, 订单明细.数量,
订单明细.折扣, 订单.订购日期
FROM 订单明细 JOIN
订单 ON 订单明细.订单ID = 订单.订单ID JOIN
产品 ON 订单明细.产品ID = 产品.产品ID
SELECT 产品.产品名称, 订单明细.单价, 订单明细.数量,
订单明细.折扣, 订单.订购日期
FROM (订单明细 JOIN 订单 ON 订单明细.订单ID = 订单.订单ID )
JOIN 产品 ON 订单明细.产品ID = 产品.产品ID
SELECT *
FROM 库存信息 INNER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
也可以用类似代码,但不提倡,改代码只等值于inner join SELECT 产品ID,产品名称,类别名称,类别.类别ID FROM 产品, 类别 WHERE 产品.类别ID = 类别.类别ID |
多表联合查询语句(LEFT OUTER JOIN= LEFT JOIN,包含“INNER JION”的同时,左边表的所有记录都要出现)
SELECT *
FROM 库存信息 LEFT OUTER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
多表联合查询语句(RIGHT OUTER JOIN = RIGHT JOIN, 包含“INNER JION”的同时,右边表的所有记录都要出现)
SELECT *
FROM 库存信息 RIGHT OUTER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
多表联合查询语句(FULL OUTER JOIN = FULL JOIN, 包含“INNER JION”的同时,左右边表的所有记录都要出现)
SELECT *
FROM 库存信息 FULL OUTER JOIN
订单信息 ON 库存信息.产品名称 = 订单信息.产品名称
多表联合查询语句(CROSS JOIN,左表和右表的所有记录进行交叉匹配)
SELECT *
FROM 库存信息 CROSS JOIN 订单信息
表JION自身
SELECT 雇员.雇员ID, 雇员.姓氏, 雇员.名字, 雇员.职务,
主管.姓氏 AS 主管姓氏, 主管.名字 AS 主管名字,
主管.职务 AS 主管职务
FROM 雇员 LEFT OUTER JOIN
雇员 AS 主管 ON 雇员.上级 = 主管.雇员ID
说明:“雇员”表中有个字段是“雇员.上级”,该查询语句表示组合查询雇员和雇员的上级信息。
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式