sqlserver数据库多表联合查询

//内联接:(INNER JOIN)
内联接使用比较运算符根据每个表的通用列中的值匹配两个表中的行
(1)SELECT ……
FROM 表1
INNER JOIN 表2
ON ……

SELECT S.SName,C.CourseID,C.Score

FROM Score AS C

INNER JOIN Students AS S

ON C.StudentID = S.SCode

(2)SELECT ……
FROM 表1,表2
WHERE ……

SELECT Students.SName, Score.CourseID, Score.Score

FROM Students,Score

WHERE Students.SCode = Score.StudentID

//外联接
:
(1)左外联接 (LEFT JOIN):左表的数据是完整的。
从表(右表)中的数据逐条匹配主表(左表)中的数据:

1、匹配,返回到结果集

2、无匹配,NULL值返回到结果集

SELECT S.SName,C.CourseID,C.Score

FROM Students AS S

LEFT JOIN Score AS C

ON C.StudentID = S.SCode

(2)右外联接 (RIGHT JOIN)
:右表的数据是完整的。
从表(左表)中的数据逐条匹配主表(右表)中的数据:

1、匹配,返回到结果集

2、无匹配,NULL值返回到结果集
SELECT 图书编号,图书名称,出版社名称

FROM 图书表

RIGHT JOIN 出版社表

ON 图书表.出版社编号 = 出版社表.出版社编号

原文地址:https://www.cnblogs.com/wangzhaofang/p/8298009.html

时间: 2024-10-19 11:23:00

sqlserver数据库多表联合查询的相关文章

MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例

工具:VS.net2013.EF6.MVC5.SQLServer2008 参考出处: http://www.cnblogs.com/slark/p/mvc-5-get-started-create-project.html http://www.cnblogs.com/miro/p/4288184.html http://www.cnblogs.com/dotnetmvc/p/3732029.html 一.准备工作 在SqlServer上创建数据库:Element 模拟两个表并插入数据:SysU

Oracle数据库-多表联合查询&子查询

多表联合查询 当需要获取的数据分布在多张中,考虑使用联合查询1.SQL92方式2.SQL99方式 SQL92方式 1.笛卡尔积:将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积. 结果的数量为所有表的数量的乘积. select * from emp,dept 2.等值连接筛选 概念:先做表的笛卡尔积,然后筛选,筛选条件为等值筛选. 注意:条件为字段的值相同来进行筛选,字段的名字可以不同 查询员工姓名,工作,薪资,部门名称 select * from emp,dept where emp.d

约束条件 ,表与表之间的关系 和多表联合查询***

一.约束条件    为了确保数据的完整性 可以给列加上约束条件    完整性的分类:        1.实体完整性        2.域完整性        3.引用完整性    1.实体完整性        实体:即表中的一行(一条)记录 代表一个实体 entity        实体完整性的作用:标识每一行数据不重复        约束类型:            1.1 主键约束(primary key)            1.2 唯一约束(unique)            1.3

对于多表联合查询的一点理解

操作数据库时多表联合查询很常见.也知道常见联合查询的集中类型,内连接.外连接.全连接.自连接,外连接又分为左连接和右连接. 这些概念我一直都知道,但对于感念的理解并不透彻.对于不同类型的联合查询的结果数据集合没有清晰的区分.前两天,工作中又遇到的这样的问题,才开始弄明白. 内连接:传统写法:select a.*,b.* from a,b where a.column=b.column; 新式写法:select a.* from a inner join b on a.column=b.colum

hibernate实现多表联合查询

以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQL没多大差别. hibernate很多实现都是靠喜欢配关系,但是如果两张表,数据量都非常大的时候,并不合适配关系. 例如:student表和score表需要做联合查询. 1)sql: select s.id,s.name,sc.score from student as s,score as sc

MyBatis之三:多表联合查询

在这篇文章里面主要讲解如何在mybatis里面使用一对一.一对多.多表联合查询(类似视图)操作的例子. 注:阅读本文前请先大概看一下之前两篇文章. 一.表结构 班级表class,学生表student,班级学生关系表ClassStudent. 这里一个学生只会在一个班级里面,也就是一对一的关系:一个班级有多个学生,也就是一对多的关系. 结构如下: CREATE TABLE [dbo].[Class]( [class_id] [int] NOT NULL, [class_name] [varchar

hibernate 多表联合查询

以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQL没多大差别. hibernate很多实现都是靠喜欢配关系,但是如果两张表,数据量都非常大的时候,并不合适配关系. 例如:student表和score表需要做联合查询. 1)sql: select s.id,s.name,sc.score from student as s,score as sc

MyBatis 多表联合查询及优化

序 这篇文章我打算来简单的谈谈 mybatis 的多表联合查询.起初是觉得挺简单的,没必要拿出来写,毕竟 mybatis 这东西现在是个开发的都会用,而且网上的文章也是一搜罗一大堆,根本就用不着我来重复.但是吧,就我前几天在做一个多表联合查询的时候,竟然出了很多意想不到的问题,而且这些问题的出现,并不是对 mybatis 不了解,而是在用的过程中会或多或少的忽略一些东西,导致提示各种错误. 背景 老规矩,开始之前,还是要先说说这件事的背景.也就是最近几天,公司要做一个后台的管理平台,由于之前的一

多表联合查询

inner jion 和for all entries 当表比较多或者表之间的关系不能用for all entries时,我们就可以考虑使用inner jion来实现多表联合查询 eg:  SELECT VBAK~VBELN VBAK~OBJNR GUEBG "开始日期          GUEEN  "结束日期          KUNNR KNUMV          POSNR VBAP~NETWR     INTO TABLE LT_VBAP     FROM VBAK INN