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. Refused to set unsafe header

    Refused to set unsafe header Refused to set unsafe header "Host"waitServerDeal @ tGet.html ...

  2. 【题解】 AT2134 Zigzag MST

    [题解]AT2134 Zigzag MST 一道MST好题 \(Anson\)有云: 要么是减少边的数量. 要么是改变连接边的方式. 那么如何减少边的数量呢?很简单,把所有不可能对答案产生贡献的边去掉 ...

  3. 题解 P3372 【【模板】线段树 1】

    发一篇不需要O2就能过的分块. 基本思路: 分块的思路,大段维护,小段朴素. 维护几个数组: 区块\(block[maxn]\) 懒标记\(tag[maxn]\) 真实数据\(data[maxn]\) ...

  4. Why Use C++/CLI?

    来源:http://www.asawicki.info/Download/Productions/Publications/CPP_CLI_tutorial.pdf Why Use C++/CLI? ...

  5. 扫盲-wpf依赖属性

    一.什么是依赖属性 依赖属性就是一种自己可以没有值,并且可以通过绑定从其他数据源获取值.依赖属性可支持WPF中的样式设置.数据绑定.继承.动画及默认值. 将所有的属性都设置为依赖属性并不总是正确的解决 ...

  6. 转 EBP ESP 的理解

    PS:EBP是当前函数的存取指针,即存储或者读取数时的指针基地址:ESP就是当前函数的栈顶指针.每一次发生函数的调用(主函数调用子函数)时,在被调用函数初始时,都会把当前函数(主函数)的EBP压栈,以 ...

  7. unix下面是常用命令及简单说明

    摘自:http://blog.sina.com.cn/s/blog_629b80af01018k7x.html 命令 功能简述 acctcom 等于进程记帐文件 accton 启动或中止记帐进程 ad ...

  8. spring2.5整合struts2

    首先第一步: 导入jar包: 我的做法: 导入你的基本使用的spring的jar包 和基本使用的struts2的jar包 然后struts2中有一个和spring整合的jar包一定要导入,不然会抛异常 ...

  9. 第六章-jQuery

    jQuery的理念是: 写更少的代码, 完成更多的工作 jQuery有两个版本1.x和2.x, 版本2.x不再支持IE678 jQuery最明显的标志就是$, jQuery把所有的功能都封装在了jQu ...

  10. CSDN不登陆看博文

    做前端的朋友说,手动改太Low,给了段JS代码: javascript: void((function() {var divElement = document.getElementById('art ...