八、Sql Server 基础培训《进度8-查询多种写法》(实际操作)

知识点:

假设学生表、班级表、年级表

学生表(student

内码

学生姓名

班级内码

001

张三

1002

002

李四

1002

003

王五

1003

004

钱六

1001

 

班级表(class

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

年级表(grade

内码

年级名称

1

1年级

2

2年级

 

执行语句如下:

drop table student

create table student

(

         内码 int,

         姓名 varchar(100),

         班级内码 int

)

 

insert into student

values('001','张三','1002'),

('002','李四','1002'),

('003','王五','1003'),

('004','钱六','1001')

 

drop table class

create table class

(

         内码 int,

         班级名称 varchar(100),

         年级内码 int

)

 

 

insert into class

values('1002','2班','1'),

('1003','3班','2'),

('1004','4班','3')

 

drop table grade

create table grade

(

         内码 int,

         年级名称 varchar(100)

)

 

insert into grade

values('1','1年级'),

('2','2年级')

 

 

1、内连接

内连接是在每个表中找出符合条件的共有记录。各表中不符合条件的记录,不写入结果集。

写法1select  t1.*,t2.*

                   from student t1, class t2

                   where t1.班级内码=t2.内码

 

写法2select t1.*, t2.*

                   from student  t1

                   join class t2 on t1. 班级内码=t2.内码

 

写法3select t1.*, t2.*

                   from student  t1

                   inner join class t2 on t1. 班级内码=t2.内码

 

执行过程详解:(此处运算解法仅个人意见,并非系统内部运算原理)

运算1符合where条件,班级内码相等的情况下,班级内码=1001:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

004

钱六

1001

 

班级表符合条件记录有0条:

内码

班级名称

年级内码

Null

Null

Null

 

产生的组合1乘0=0种组合:

无结果集

 

运算2符合where条件,班级内码相等的情况下,班级内码=1002:

学生表符合条件记录有2条:

内码

学生姓名

班级内码

001

张三

1002

002

李四

1002

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

 

产生的组合2乘1=2种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

 

 

运算3符合where条件,班级内码相等的情况下,班级内码=1003:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

003

王五

1003

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

003

王五

1003

1003

3班

2

 

 

运算4符合where条件,班级内码相等的情况下,班级内码=1004:

学生表符合条件记录有0条:

内码

学生姓名

班级内码

Null

Null

Null

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1004

4班

3

 

产生的组合0乘1=0种组合:

无结果集

 

 

运算5合并运算1结果、运算2结果、运算3结果、运算4结果=3种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

003

王五

1003

1003

3班

2

 

 

=================================================

=================================================

2、外连接(左连接、右连接、全连接)

左连接是根据最左表的记录,在被连接右表中找出符合条件的记录与之匹配,找不到与左表匹配的,用null填充。

 

写法1select t1.*, t2.*

                   from student  t1

                   left join class t2 on t1. 班级内码=t2.内码

 

写法2select t1.*, t2.*

                   from student  t1

                   left outer join class t2 on t1. 班级内码=t2.内码

 

执行过程详解:(此处运算解法仅个人意见,并非系统内部运算原理)

运算1符合where条件,班级内码相等的情况下,班级内码=1001:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

004

钱六

1001

 

班级表符合条件记录有0条:(没有符合条件的记录以null填充)

内码

班级名称

年级内码

Null

Null

Null

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

004

钱六

1001

Null

Null

Null

 

 

运算2符合where条件,班级内码相等的情况下,班级内码=1002:

学生表符合条件记录有2条:

内码

学生姓名

班级内码

001

张三

1002

002

李四

1002

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

产生的组合2乘1=2种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

 

 

运算3符合where条件,班级内码相等的情况下,班级内码=1003:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

003

王五

1003

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

003

王五

1003

1003

3班

2

 

 

运算4合并运算1结果、运算2结果、运算3结果=4种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

004

钱六

1001

Null

Null

Null

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

003

王五

1003

1003

3班

2

 

 

=================================================

=================================================

3、右连接

右连接则是根据最右表的记录,在被连接的左表中找出符合条件的记录与之匹配,找不到匹配的,用null填充。以下是右连接结果集。

 

写法1select t1.*, t2.*

                   from student  t1

                   right  join class t2 on t1. 班级内码=t2.内码

 

写法2select t1.*, t2.*

                   from student  t1

                   right  outer join class t2 on t1. 班级内码=t2.内码

 

 

 

执行过程详解:(此处运算解法仅个人意见,并非系统内部运算原理)

运算1符合where条件,班级内码相等的情况下,班级内码=1002:

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

 

学生表符合条件记录有2条:

内码

学生姓名

班级内码

001

张三

1002

002

李四

1002

 

产生的组合1乘2=2种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

 

 

运算2符合where条件,班级内码相等的情况下,班级内码=1003:

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

学生表符合条件记录有1条:

内码

学生姓名

班级内码

003

王五

1003

 

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

003

王五

1003

1003

3班

2

 

 

运算3符合where条件,班级内码相等的情况下,班级内码=1004:

班级表符合条件记录有1条:

内码

班级名称

年级内码

1004

4班

3

 

学生表符合条件记录有0条:

内码

学生姓名

班级内码

Null

Null

Null

 

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

Null

Null

Null

1004

4班

3

运算4合并运算1结果、运算2结果、运算3结果=4种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

003

王五

1003

1003

3班

2

Null

Null

Null

1004

4班

3

 

 

===================================================

===================================================

4、全连接

返回符合条件的所有表的记录,没有与之匹配的,用null填充。

写法1select t1.*, t2.*

                   from student  t1

                   full join class t2 on t1. 班级内码=t2.内码

 

写法2select t1.*, t2.*

                   from student  t1

                   full outer join class t2 on t1. 班级内码=t2.内码

 

执行过程详解:(此处运算解法仅个人意见,并非系统内部运算原理)

运算1符合where条件,班级内码相等的情况下,班级内码=1001:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

004

钱六

1001

 

班级表符合条件记录有0条:(没有符合条件的记录以null填充)

内码

班级名称

年级内码

Null

Null

Null

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

004

钱六

1001

Null

Null

Null

 

 

运算2符合where条件,班级内码相等的情况下,班级内码=1002:

学生表符合条件记录有2条:

内码

学生姓名

班级内码

001

张三

1002

002

李四

1002

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

 

产生的组合2乘1=2种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

 

 

运算3符合where条件,班级内码相等的情况下,班级内码=1003:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

003

王五

1003

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

003

王五

1003

1003

3班

2

 

 

运算4符合where条件,班级内码相等的情况下,班级内码=1004:

学生表符合条件记录有0条:

内码

学生姓名

班级内码

Null

Null

Null

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1004

4班

3

 

产生的组合1乘1=1种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

Null

Null

Null

1004

4班

3

 

运算5合并运算1结果、运算2结果、运算3结果=4种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

004

钱六

1001

Null

Null

Null

001

张三

1002

1002

2班

1

002

李四

1002

1002

2班

1

003

王五

1003

1003

3班

2

Null

Null

Null

1004

4班

3

 

 

 

===============================================

===============================================

5、交叉连接

笛卡尔积运算,结果集的记录数将等于第一个表的记录数乘以第二个表中的记录数。

 

写法1select  t1.*,t2.*

                   from student t1, class t2  --不带where条件的内连接

 

写法2select  t1.*, t2.*

                   from student  t1

                   join class t2

 

写法3:select  t1.*, t2.*

                   from student  t1

                   inner join class t2

 

写法4select  t1.*, t2.*

                   from student  t1

                   cross join class t2

 

本例,学生表4条记录,级表3条记录,结果集为3乘4=12种组合。

执行过程详解:(此处运算解法仅个人意见,并非系统内部运算原理)

运算1学生表内码=001:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

001

张三

1002

 

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

产生的组合1乘3=3种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

001

张三

1002

1003

3班

2

001

张三

1002

1004

4班

3

 

 

 

 

 

 

运算2学生表内码=002:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

002

李四

1002

 

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

产生的组合1乘3=3种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

002

李四

1002

1002

2班

1

002

李四

1002

1003

3班

2

002

李四

1002

1004

4班

3

 

 

运算3学生表内码=003:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

003

王五

1003

 

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

产生的组合1乘3=3种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

003

王五

1003

1002

2班

1

003

王五

1003

1003

3班

2

003

王五

1003

1004

4班

3

 

 

 

 

运算4学生表内码=004:

学生表符合条件记录有1条:

内码

学生姓名

班级内码

004

钱六

1001

 

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

产生的组合1乘3=3种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

004

钱六

1001

1002

2班

1

004

钱六

1001

1003

3班

2

004

钱六

1001

1004

4班

3

 

 

运算5合并运算1结果、运算2结果、运算3结果、运算4结果=12种组合:

内码

学生姓名

班级内码

内码

班级名称

年级内码

001

张三

1002

1002

2班

1

001

张三

1002

1003

3班

2

001

张三

1002

1004

4班

3

002

李四

1002

1002

2班

1

002

李四

1002

1003

3班

2

002

李四

1002

1004

4班

3

003

王五

1003

1002

2班

1

003

王五

1003

1003

3班

2

003

王五

1003

1004

4班

3

004

钱六

1001

1002

2班

1

004

钱六

1001

1003

3班

2

004

钱六

1001

1004

4班

3

 

 

============================================

============================================

6、自连接

顾名思义,就是连接的表都是同一个表。同样可以有内连接、外连接各种组合方式,按实际应用去组合。(此处略)

 

 

 

===================================================

===================================================

学习作业8写出学生表、班级表、年级表三表联合的sql语句、运算过程、运算结果,并把查询语句

放在查询分析器中执行,对照你手工计算的结果,和系统计算的结果是否一致。总共需要写出语法

包括:内连接、左连接、右连接、全连接、交叉连接。提交给枫山。

学习作业8答案公布:

一、内连接:

select *  from student t1

inner join class t2 on t1.班级内码=t2.内码

inner join grade t3 on t2.年级内码=t3.内码

运算1班级内码,年级内码相等的情况下, 班级内码=1001时:

学生表符合条件记录有1条:

内码

姓名

班级内码

004

钱六

1001

 

班级表符合条件记录有0条:

内码

班级名称

年级内码

Null

Null

Null

 

年级表符合条件记录0条

内码

年级名称

Null

Null

 

无结果集

 

运算2符合where条件,班级内码,年级内码相等的情况下,班级内码=1002:

 

学生表符合条件记录有2条:

内码

姓名

班级内码

001

张三

1002

002

李四

1002

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

 

年级表符合条件记录有1条:

内码

年级名称

1

1年级

 

产生2种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

 

运算3符合where条件,班级内码,年级内码相等的情况下,班级内码=1003:

 

学生表符合条件记录有1条:

内码

姓名

班级内码

003

王五

1003

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

年级表符合条件记录1条:

内码

年级名称

2

2年级

 

产生1种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

003

王五

1003

1003

3班

2

2

2年级

 

运算4符合where条件,班级内码,年级内码相等的情况下,班级内码=1004:

学生表符合条件记录有0条:

内码

姓名

班级内码

Null

Null

Null

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1004

4班

3

 

年级表符合条件记录0条

内码

年级名称

Null

NULL

 

无结果集

 

运算5合并运算1结果、运算2结果、运算3结果、运算4结果=3种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

003

王五

1003

1003

3班

2

2

2年级

 

二、左连接

 

select * from student t1

left join class t2 on t1.班级内码=t2.内码

left join grade t3 on t2.年级内码=t3.内码

 

运算1班级内码,年级内码相等的情况下,班级内码=1002,年级内码=1:

 

学生表符合条件记录有2条:

内码

姓名

班级内码

001

张三

1002

002

李四

1002

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

 

年级表符合条件记录有1条:

内码

年级名称

1

1年级

 

产生2种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

 

运算2班级内码,年级内码相等的情况下,班级内码=1003,年级内码=2:

学生表符合条件记录有1条:

内码

姓名

班级内码

003

王五

1003

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

年级表符合条件记录1条:

内码

年级名称

2

2年级

 

产生的组合1乘1=1种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

003

王五

1003

1003

3班

2

2

2年级

 

运算3班级内码,年级内码相等的情况下,班级内码=1001,年级内码=Null:

 

学生表符合条件记录有1条:

内码

姓名

班级内码

004

钱六

1001

班级表符合条件记录有0条:(没有符合条件的记录以null填充)

内码

班级名称

年级内码

Null

Null

Null

 

年级表符合条件记录0条

内码

年级名称

null

null

 

产生1种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

004

钱六

1001

Null

Null

Null

Null

Null

 

运算4合并运算1结果、运算2结果、运算3结果=4种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

003

王五

1003

1003

3班

2

2

2年级

004

钱六

1001

Null

Null

Null

Null

Null

 

三、右连接

select * from student t1

right join class t2 on t1.班级内码=t2.内码

right join grade t3 on t2.年级内码=t3.内码

 

运算1班级内码,年级内码相等的情况下,年级内码=1,班级内码=1002:

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

 

学生表符合条件记录有2条:

内码

姓名

班级内码

001

张三

1002

002

李四

1002

 

年级表符合条件记录1条:

内码

年级名称

1

1年级

 

产生2种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

 

 

运算2班级内码,年级内码相等的情况下,年级内码=2,班级内码=1003:

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

学生表符合条件记录有1条:

内码

姓名

班级内码

003

王五

1003

 

年级表符合条件记录1条:

内码

年级名称

2

2年级

 

产生1种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

003

王五

1003

1003

3班

2

2

2年级

 

运算3合并运算1结果、运算2结果=3种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

003

王五

1003

1003

3班

2

2

2年级

 

四、全连接

         

select * from student t1

full join class t2 on t1.班级内码=t2.内码

full join grade t3 on t2.年级内码=t3.内码

 

运算1班级内码,年级内码相等的情况下,班级内码=1001,年级内码=null:

学生表符合条件记录有1条:

内码

姓名

班级内码

004

钱六

1001

 

班级表符合条件记录有0条:(没有符合条件的记录以null填充)

内码

班级名称

年级内码

Null

Null

Null

 

年级表符合条件记录0条:

内码

年级名称

Null

Null

产生的组合1种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

004

钱六

1001

Null

Null

Null

Null

Null

 

运算2班级内码,年级内码相等的情况下,班级内码=1002,年级内码=1:

学生表符合条件记录有2条:

内码

姓名

班级内码

001

张三

1002

002

李四

1002

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1002

2班

1

 

年级表符合条件记录1条:

内码

年级名称

1

1年级

 

产生的组合2种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

 

运算3班级内码,年级内码相等的情况下,班级内码=1003,班级内码=2:

学生表符合条件记录有1条:

内码

姓名

班级内码

003

王五

1003

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1003

3班

2

 

年级表符合条件记录1条:

内码

年级名称

2

2年级

 

产生1种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

003

王五

1003

1003

3班

2

2

2年级

 

运算4班级内码,年级内码相等的情况下,班级内码=1004,年级内码=null:

 

学生表符合条件记录有0条:

内码

姓名

班级内码

Null

Null

Null

 

 

班级表符合条件记录有1条:

内码

班级名称

年级内码

1004

4班

3

 

年级表符合条件记录0条:

内码

年级名称

Null

Null

 

产生1种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

Null

Null

Null

1004

4班

3

Null

Null

 

运算5合并运算1结果、运算2结果、运算3结果、运算4结果=5种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

002

李四

1002

1002

2班

1

1

1年级

003

王五

1003

1003

3班

2

2

2年级

004

钱六

1001

Null

Null

Null

Null

Null

Null

Null

Null

1004

4班

3

Null

Null

 

五、交叉连接

 

select  *

from student t1, class t2,grade t3

运算1学生表内码=001:

学生表符合条件记录有1条:

内码

姓名

班级内码

001

张三

1002

 

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

年级表符合条件记录2条:

内码

年级名称

1

1年级

2

2年级

产生6种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

001

张三

1002

1003

3班

2

1

1年级

001

张三

1002

1004

4班

3

1

1年级

001

张三

1002

1002

2班

1

2

2年级

001

张三

1002

1003

3班

2

2

2年级

001

张三

1002

1004

4班

3

2

2年级

 

运算2学生表内码=002:

学生表符合条件记录有1条:

内码

姓名

班级内码

002

李四

1002

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

年级表符合条件记录2条:

内码

年级名称

1

1年级

2

2年级

 

产生6种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

002

李四

1002

1002

2班

1

1

1年级

002

李四

1002

1003

3班

2

1

1年级

002

李四

1002

1004

4班

3

1

1年级

002

李四

1002

1002

2班

1

2

2年级

002

李四

1002

1003

3班

2

2

2年级

002

李四

1002

1004

4班

3

2

2年级

 

运算3学生表内码=003:

学生表符合条件记录有1条:

内码

姓名

班级内码

003

王五

1003

 

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

年级表符合条件记录2条:

内码

年级名称

1

1年级

2

2年级

 

产生6种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

003

王五

1003

1002

2班

1

1

1年级

003

王五

1003

1003

3班

2

1

1年级

003

王五

1003

1004

4班

3

1

1年级

003

王五

1003

1002

2班

1

2

2年级

003

王五

1003

1003

3班

2

2

2年级

003

王五

1003

1004

4班

3

2

2年级

 

运算4学生表内码=004:

学生表符合条件记录有1条:

内码

姓名

班级内码

004

钱六

1001

 

班级表符合条件记录有3条:

内码

班级名称

年级内码

1002

2班

1

1003

3班

2

1004

4班

3

 

年级表符合条件记录2条:

内码

年级名称

1

1年级

2

2年级

产生6种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

004

钱六

1001

1002

2班

1

1

1年级

004

钱六

1001

1003

3班

2

1

1年级

004

钱六

1001

1004

4班

3

1

1年级

004

钱六

1001

1002

2班

1

2

2年级

004

钱六

1001

1003

3班

2

2

2年级

004

钱六

1001

1004

4班

3

2

2年级

 

运算5合并运算1结果、运算2结果、运算3结果、运算4结果=24种组合:

内码

姓名

班级内码

内码

班级名称

年级内码

内码

年级名称

001

张三

1002

1002

2班

1

1

1年级

001

张三

1002

1003

3班

2

1

1年级

001

张三

1002

1004

4班

3

1

1年级

001

张三

1002

1002

2班

1

2

2年级

001

张三

1002

1003

3班

2

2

2年级

001

张三

1002

1004

4班

3

2

2年级

002

李四

1002

1002

2班

1

1

1年级

002

李四

1002

1003

3班

2

1

1年级

002

李四

1002

1004

4班

3

1

1年级

002

李四

1002

1002

2班

1

2

2年级

002

李四

1002

1003

3班

2

2

2年级

002

李四

1002

1004

4班

3

2

2年级

003

王五

1003

1002

2班

1

1

1年级

003

王五

1003

1003

3班

2

1

1年级

003

王五

1003

1004

4班

3

1

1年级

003

王五

1003

1002

2班

1

2

2年级

003

王五

1003

1003

3班

2

2

2年级

003

王五

1003

1004

4班

3

2

2年级

004

钱六

1001

1002

2班

1

1

1年级

004

钱六

1001

1003

3班

2

1

1年级

004

钱六

1001

1004

4班

3

1

1年级

004

钱六

1001

1002

2班

1

2

2年级

004

钱六

1001

1003

3班

2

2

2年级

004

钱六

1001

1004

4班

3

2

2年级

 

猜你喜欢

转载自www.cnblogs.com/star-studio/p/9315821.html