sql server语法——多表查询(连接查询)

一、含义

当查询中涉及到了多个表的字段,需要使用多表查询
select 字段1,字段2,……
from 表1,表2,……

二、分类

按年代分
sql192:

  1. 等值连接
  2. 非等值连接
  3. 自连接

sql199【推荐使用】

内连接

  1. 等值连接
  2. 非等值连接
  3. 自连接

外连接

  1. 左外连接
  2. 右外连接
  3. 全外连接

三、语法

sql92语法
特点:
一般为表起别名
多表的顺序可以调换
n表连接至少需要n-1个连接条件
等值连接的结果是多表的交集部分

  1. 等值连接
    select 查询列表
    from 表1 别名,表2 别名
    where 表1.key = 表2.key
    【and 筛选条件】
    【group by 分组字段】
    【having 分组后的筛选】
    【order by 排序字段】

  2. 非等值连接
    select 查询列表
    from 表1 别名,表2 别名
    where 非等值的连接条件
    【and 筛选条件】
    【group by 分组字段】
    【having 分组后的筛选】
    【order by 排序字段】

  3. 自连接(表自己连接自己)
    select 查询列表
    from 表1 别名1,表1 别名2
    where 表1.key = 表1.key
    【and 筛选条件】
    【group by 分组字段】
    【having 分组后的筛选】
    【order by 排序字段】

sql99语法

  1. 内连接(inner join)
    select 查询列表
    from 表1 别名 inner join 表2 别名 on 连接条件
    【where 筛选条件】
    【group by 分组字段】
    【having 分组后的筛选】
    【order by 排序字段】
    特点:
    表的顺序可以调换
    内连接的结果 = 多表的交集
    n表连接至少需要n-1个连接条件
  2. 外连接
    特点
    查询的结果 = 主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null
    left join 左边的就是主表
    right join 右边的就是主表
    full join 两边都是主表
    一般用于查询除了交集部分的剩余的不匹配的行
    select 查询列表
    from 表1 别名 left\right\full join 表2 别名 on 连接条件
    【where 筛选条件】
    【group by 分组字段】
    【having 分组后的筛选】
    【order by 排序字段】

猜你喜欢

转载自blog.csdn.net/weixin_44201223/article/details/121577466