两表关联,
时间:2011-12-21
来源:互联网
如T1 (DEPID,NAME)
1 张三
2 李四
阿五
,T2 (DEPID,DEPTNAME)
1 行政
2 财务
3 研发
1:通过DEPTID关联部门,还要放阿五,没有DEPID的也要显示这个人
作者: jeetliang 发布时间: 2011-12-21
作者: TravyLee 发布时间: 2011-12-21
不同的班有重名的人,同一个班没有重名的,班级和姓名是联合主键
--租借表
姓名 班级 性别 借书数量(int类型)
张三 一班 男 10
李四 二班 女 7
张三 二班 女 5
李四 一班 男 3
--归还表
姓名 班级 性别 还书数量(int类型)
张三 一班 男 9
'李四','二班','女',5
张三 二班 女 2
李四 一班 男 1
--查找现在所有人欠书本数为1-3本的且性别为女的查询结果
显示结果为:
姓名 班级 性别 仍欠数量
*/
--租借表
go
if object_id('租借表') is not null
drop table 租借表
go
create table 租借表(
姓名 varchar(20) not null,
班级 varchar(20) not null,
性别 varchar(5) check(性别 in('男','女')),
借书数量 int default 0
)
go
alter table 租借表 add constraint pk_name_class primary key(姓名,班级)
go
insert 租借表
select '张三','一班','男',10 union all
select '李四','二班','女',7 union all
select '张三','二班','女',5 union all
select '李四','一班','男',3
--归还表
go
if object_id('归还表') is not null
drop table 归还表
go
create table 归还表(
姓名 varchar(20) not null,
班级 varchar(20) not null,
性别 varchar(5) check(性别 in('男','女')),
还书数量 int default 0
)
go
alter table 归还表 add constraint pk_n_c primary key(姓名,班级)
go
insert 归还表
select '张三','一班','男',9 union all
select '李四','二班','女',5 union all
select '张三','二班','女',2 union all
select '李四','一班','男',1
select *from 归还表
--查找现在所有人欠书本数为1-3本的且性别为女的查询结果
--显示结果为:
--姓名 班级 性别 仍欠数量
select
租借表.姓名,租借表.班级,
租借表.性别,(租借表.借书数量-归还表.还书数量) as 仍欠数量
from
租借表 inner join 归还表
on
租借表.姓名=归还表.姓名 and 租借表.班级=归还表.班级
/*
--结果表
姓名 班级 性别 仍欠数量
李四 二班 女 2
李四 一班 男 2
张三 二班 女 3
张三 一班 男 1
*/
/*
两表关联:
如T1 (DEPID,NAME)
1 张三
2 李四
null 阿五
T2 (DEPID,DEPTNAME)
1 行政
2 财务
3 研发
1:通过DEPTID关联部门,还要放阿五,没有DEPID的也要显示这个人
*/
go
if object_id('T1')is not null
drop table T1
go
create table T1(
DEPID int,
NAME varchar(20)
)
insert T1
select 1,'张三' union all
select 2,'李四' union all
select null,'阿五'
select *from T1
go
if object_id('T2')is not null
drop table T2
go
create table T2(
DEPID int,
DEPARTNAME varchar(20)
)
go
insert T2
select 1,'行政' union all
select 2,'财务' union all
select 3,'研发'
select
T1.DEPID,T1.NAME,T2.DEPARTNAME
from
T1 left join T2 on T1.DEPID=T2.DEPID
/*
结果表:
DEPID NAME DEPARTNAME
1 张三 行政
2 李四 财务
NULL 阿五 NULL
*/
作者: TravyLee 发布时间: 2011-12-21
两表关联:
如T1 (DEPID,NAME)
1 张三
2 李四
null 阿五
T2 (DEPID,DEPTNAME)
1 行政
2 财务
3 研发
1:通过DEPTID关联部门,还要放阿五,没有DEPID的也要显示这个人
*/
go
if object_id('T1')is not null
drop table T1
go
create table T1(
DEPID int,
NAME varchar(20)
)
insert T1
select 1,'张三' union all
select 2,'李四' union all
select null,'阿五'
select *from T1
go
if object_id('T2')is not null
drop table T2
go
create table T2(
DEPID int,
DEPARTNAME varchar(20)
)
go
insert T2
select 1,'行政' union all
select 2,'财务' union all
select 3,'研发'
select
T1.DEPID,T1.NAME,T2.DEPARTNAME
from
T1 left join T2 on T1.DEPID=T2.DEPID
/*
结果表:
DEPID NAME DEPARTNAME
1 张三 行政
2 李四 财务
NULL 阿五 NULL
*/
作者: TravyLee 发布时间: 2011-12-21
作者: jeetliang 发布时间: 2011-12-21
没这个简单吧?当这个部门有好多人都是deptid=1 或2,就会出现很多重的
出现多重的就是有一对多的情况,查清楚就好办
作者: szstephenzhou 发布时间: 2011-12-21
1 张三 行政
2 李四 财务
NULL 阿五 NULL
1 王二 行政
2 tracy 财务
作者: TravyLee 发布时间: 2011-12-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28