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. Mac下终端常用命令

    一.删除文件 1 打开终端应用程序 2 输入命令:sudo (空格) rm (空格)-r (空格)-f (空格)(注意-f后面还有空格),还要注意,全部小写. 3 把你要删的文件或者文件夹用mouse ...

  2. 【题解】P2444 病毒

    [题解][P2444 POI2000]病毒 一道\(ac\)自动机好题... 考虑危险的字符串是什么意思,就是在这个文本串中有模式串的匹配,这样的匹配可以通过\(ac\)自动机完成. 那么给定一个字符 ...

  3. 修正IE6中FIXED不能用的办法,转载

    .fixed-top /* 头部固定 */{position:fixed;bottom:auto;top:0px;} .fixed-bottom /* 底部固定 */{position:fixed;b ...

  4. struts 与 Java Web应用简介

    struts实质上就是JSP Model2的基础上实现的MVC框架. 在Struts框架中,模型有实现业务逻辑的JavaBean或EJB组件构成 视图由一组JSP文件构成. 控制器 控制器由Actio ...

  5. abap 数字移动小游戏

    [转自 http://blog.csdn.net/forever_crazy/article/details/6542507] report ...... selection-screen pushb ...

  6. uboot移植添加nfs支持

    手头6410开发板uboot(基于2011.06)其他功能包括ping和tftp都执行正常,唯独缺少nfs. 只需要在其配置文件(每个开发板文件通常名称不同,include/configs/*6410 ...

  7. julia

    版本还不成熟,等成熟了再完整的看看吧.

  8. python function with variadic arguments or keywords(dict) 可变参数与关键字参数

    *args 表示任意个普通参数,调用的时候自动组装为一个tuple **kwags 表示任意个字典类型参数, 调用的时候自动组装成一个dict args和kwags是两个约定俗成的用法. 变长参数可以 ...

  9. 'QObject& QObject::operator=(const QObject&)' is private——无法将自定义的QObject子类放入Qt容器(container)中

    先贴出问题的代码: #include<QCoreApplication> classMyObject:publicQObject { public: MyObject(QObject*pa ...

  10. 【Matlab】调试基础

    1.matlab 调试子程序 在主程序进入子程序前一句加断点,然后step in,可以进入子程序. 但是直接在子程序里设置断点,运行主程序是不能进入子程序的.