VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > MongoDB >
  • 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 库存信息.产品名称 = 订单信息.产品名称
 
也可以用类似代码,但不提倡,改代码只等值于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
 
说明:“雇员”表中有个字段是“雇员.上级”,该查询语句表示组合查询雇员和雇员的上级信息。

相关教程