1:我现在想通过一个学生的姓名模糊查询出所属的班级 select 班级编号,备注 from 班级表 a inner join 学生表 b on a.班级编号=b.所属班级 and b.姓名 like ''%学生姓名%'' 2:一个班级对应多个学生 select a.班级编号,学生数=count(*) from 班级表 a inner join 学生表 b on a.班级编号=b.所属班级 group by a.班级编号 3:一个学生的姓名模糊查询可以查询出多个学生的记录即得到多个班级编号 我现在要得到相应的班级表中的所有字段,不需要学生的信息(但不要重复的记录,因为表中备注是text型,所以不能用distinct) 同1
学生表(学号 int,姓名 varchar(20),所属班级 int(外键联系班级表的班级编号)) 班级表(班级编号 int(主键),备注 text)declare @vName varchar(20) select Class.* from 學生表 Student,班級表 Class where Student.所屬班級=B.班級編號 and Student.姓名 like '%'+@vName+'%'
select class.* from clase where 班级编号 in (select 所属班机 from student where 姓名 like '%'+@vName+'%')
select 班级编号,备注 from 班级表 a inner join 学生表 b on a.班级编号=b.所属班级
and b.姓名 like ''%学生姓名%''
2:一个班级对应多个学生
select a.班级编号,学生数=count(*) from 班级表 a inner join 学生表 b on a.班级编号=b.所属班级
group by a.班级编号
3:一个学生的姓名模糊查询可以查询出多个学生的记录即得到多个班级编号
我现在要得到相应的班级表中的所有字段,不需要学生的信息(但不要重复的记录,因为表中备注是text型,所以不能用distinct)
同1
班级表(班级编号 int(主键),备注 text)declare @vName varchar(20)
select Class.* from 學生表 Student,班級表 Class
where Student.所屬班級=B.班級編號 and Student.姓名 like '%'+@vName+'%'
如果我要通过'姓名'模糊查询学生表得到不重复的班级编号,且不能用distinct
该怎么办呢?
select * from 班级表 where 班级编号 in (
select 班级编号,备注 from 班级表, 学生表 where 班级表.班级编号=学生表.所属班级
and 学生表.姓名 like ''% @name %'')
select max(班级编号),max(备注)
from 班级表 inner join 学生表 on 班级表.班级编号=学生表.班级编号
where 姓名 like '%'
group by 班级编号,备注这个机上没装SQL所有语句没调试,可能会有错,请多多包涵.