join 一共有四个 左右 内外
join inner join
left join outer join
right join outer join
full join outer join
举例:
A表
1
2
B表
1
3
A join B
1 1
A left join B
1 1
2 null
A right join B
1 1
null 3
A full join B
1 1
2 null
null 3
join = inner join
Join是关系型数据库系统的重要 *** 作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用Join,因为Join具体联接表或函数进行查询的特性
本文将通过具体例子介绍SQL中的各种常用Join的特性和使用场合:
目录- Inner join
- Outer join
首先我们在tempdb中分别定义三个表College、Student和Apply,具体SQL代码如下:
USE tempdb ---- If database exists the same name datatable deletes it. IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'College') DROP TABLE College; IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Student') DROP TABLE Student; IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Apply') DROP TABLE Apply; ---- Create Database. create table College(cName nvarchar(50), state text, enrollment int); create table Student(sID int, sName nvarchar(50), GPA real, sizeHS int); create table Apply(sID int, cName nvarchar(50), major nvarchar(50), decision text);Inner join
内联接(Inner join)是最常用的联接类型之一,它查询满足联接谓词的数据。
假设我们要查询申请表Apply中申请学校的相关信息,由于Apply表中包含学校名字我们并不能预知,所以我们可以根据cName来内联接(Inner join)表College和Apply,从而找到Apply表中包含学校的信息。
具体SQL代码如下:
---- Gets college information from college table ---- bases on college name. SELECT DISTINCT College.cName, College.enrollment FROM College INNER JOIN Apply ON College.cName = Apply.cName
图1查询结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)