1、基本连接

select A.姓名,A.性别,B.班级名,B.家庭住址
From 学生信息 A,班级信息 B
where A.所属班级=B.班级编号
--把A表与B表连接起来

2、内连接

--内连接语法格式
select select_list
From table1 INNER join table2 [on join_conditions]
where search_conditions
order by order_expression
--INNER可以省略,使用join就把两个表连接起来 例子:
select A。班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A inner join 辅导员信息 B
on A.辅导员=B.辅导员编号 select A。班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A inner join 辅导员信息 B
on A.辅导员=B.辅导员编号 AND B.性别='女'
--注意:B.性别='女'为限制条件,等价于下例
select A。班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A inner join 辅导员信息 B
on A.辅导员=B.辅导员编号
where B.性别='女'

3、外连接包含(左外连接,右外连接,全连接)

外连接有主从表之分。以主表的每行数据匹配i从表中的数据,如果符合条件则直接而返回到查询结果中,如果主表的行在从表中没有找到匹配的行,则主表数据仍保留,并返回到查询结果中,相应的从表中的行被填上空值后也返回到查询结果中。

左外连接(左表时主表)

select A.班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A LEFT OUTER join 辅导员信息 B
on A.辅导员=B.辅导员编号
--OUTER可以省略,但是查询条件放到ON中跟放到where中相差比较大 例子:
select A.班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A LEFT OUTER join 辅导员信息 B
on A.辅导员=B.辅导员编号 AND A.班级人数> select A.班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A LEFT OUTER join 辅导员信息 B
on A.辅导员=B.辅导员编号
where A.班级人数>

右外连接(右表是主表)

select A.班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A RIGHT OUTER join 辅导员信息 B
on A.辅导员=B.辅导员编号

全连接(会显示两个表信息,不匹配的填空值)

select A.班级名,A.班级人数,B.姓名,B.联系方式
From 班级信息 A FULL OUTER join 辅导员信息 B
on A.辅导员=B.辅导员编号

4、交叉连接

他返回被连接的两个表所有数据的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行乘以第二个表中符合查询条件的数据行数。

--语法格式
select select_list
From table1 Cross Join table2
where search_conditions
order by conditions 例子:
select A.班级名称,A.班级人数,B.姓名
From 班级信息 A Cross Join 辅导员信息 B

5、自连接

select A.班级名,A。班级人数,B.班级名
From 班级信息 A,班级信息 B
where A.班级人数=B.班级人数
--注意A和B是同一个表 select A.班级名,A。班级人数,B.班级名
From 班级信息 A,班级信息 B
where A.班级人数=B.班级人数 AND a.班级编号<>B.班级编号
--注意A和B是同一个表
上个例子中会有重复的数据

SqlServer2012——多表连接查询的更多相关文章

  1. SQL多表连接查询(详细实例)

    转载博客:joeleo博客(http://www.xker.com/page/e2012/0708/117368.html) 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:stud ...

  2. SQL多表连接查询

    SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student  截图如下: 表2:course  截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...

  3. oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图

        多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...

  4. Access数据库多表连接查询

    第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * fro ...

  5. PostgreSQL-join多表连接查询和子查询

    一.多表连接查询 1.连接方式概览 [inner] join 内连接:表A和表B以元组为单位做一个笛卡尔积,记为表C,然后在C中挑选出满足符合on 语句后边的限制条件的内容. left [outer] ...

  6. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

  7. SQL的多表连接查询

    SQL的多表连接查询 多表连接查询具有两种规范,SQL92和SQL99规范. SQL92规范支持下列多表连接查询: (1)等值连接: (2)非等值连接: (3)外连接: (4)广义笛卡尔积: SQL9 ...

  8. hibernate 实现多表连接查询(转载)

    http://www.cnblogs.com/lihuiyy/archive/2013/03/28/2987531.html 为了方便,直接粘过来,方便查看.不收藏了 Hibernate主要支持两种查 ...

  9. django ORM model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct

    版权归作者所有,任何形式转载请联系作者.作者:petanne(来自豆瓣)来源:https://www.douban.com/note/301166150/ 1.多表连接查询:感觉django太NX了. ...

随机推荐

  1. 时间写入文件名 nohup 原理 Command In Background your shell may have its own version of nohup

    echo 123 > `date +%Y-%m-%d-%H.tmp` echo 123 > /home/`date +%Y-%m-%d-%H.tmp` nohup --help [root ...

  2. 我的Java开发学习之旅------>Java经典排序算法之快速排序

    一.算法思想     快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序.它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod).(1) 分治法的 ...

  3. Linux就该这么学--Shell脚本条件语句(二)

    1.for条件语句 先读取多个不同的变量值,然后逐一执行同一组命令. 从列表文件中读取主机地址,逐个测试是否在线. 从ipadds.txt中读取主机地址后赋值给HLIST变量后逐个ping列表中的主机 ...

  4. 【python】python调用shell方法

    在python脚本中,有时候需要调用shell获取一下信息,下面介绍两种常用的调用方法. 第一种,os.system() 这个函数获取的是命令的执行状态,比如 >>> import ...

  5. Java基础教程:多线程基础(3)——阻塞队列

    Java基础教程:多线程基础(3)——阻塞队列 快速开始 引入问题 生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据. 模 ...

  6. 7-3 堆栈模拟队列(25 point(s)) 【数据结构】

    7-3 堆栈模拟队列(25 point(s)) 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stac ...

  7. 蓝天白云大草原风景PSD背景素材

    蓝天白云大草原风景PSD源文件背景素材,蓝天白云,大草原,风景,背景素材,自然风景,草原景色,绿色清新背景 地址:http://www.huiyi8.com/psd/

  8. Spring MVC文件上传下载工具类

    import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import ...

  9. ThreadPoolExecutor线程池进阶使用

    一.简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int ...

  10. java面试题06

    题目: 数据库 1. 表名:g_cardapply 字段(字段名/类型/长度): g_applyno varchar 8://申请单号(关键字) g_applydate bigint 8://申请日期 ...