求帮写一个sql查询语句
首先我只筛选a表下的年级为1的数据,接着通过多个学号查询所在班级,学号和班级都要显示在查询列表里的,请问这语句怎么写? 展开
首先A表和B表没有直接关系,所以关联查询的时候无法同时查询,换句话说你给的表结构不是很对,可以先了解下我这个图,总结:两个表要有相同的字段才能进行关联查询,完全没有关系的话查询是没有意义的
2.如果你有我发的图中类似的表结构,那么可以进行关联查询,比如
select b.姓名,a.年级,a.班级 from a表,b表 where a.年级=b.年级 and/or a.班级=b.年级
上边语句其实是有一些数据冗余问题的,因为表结构设计的不是很好,但是关联查询重点是需要两个表内有相同含义字段的,这个清楚就好理解很多了。
你说的班级=1,只需要在where条件里加上相应的 a.班级=1即可,根据表设计的字段类型,如果是数值型就直接=1,如果是字符型=‘1’。条件不难,但是表结构要规划好,我再给你一个具体的比较好的表图如下
以上3表关联查询
select b.姓名,a.年级,c.班级 from a表,b表,c表 where a.学号=1 and a.年级=b.序号 and a.班级=c序号
注意上边的语句,a.年级=b.序号 和a.班级=c.序号 因为B表学员表中存的是序号,所以要对应A和C表里的序号值做条件相等判断,但是返回值(select后你可以看到的)是具体的汉字内容
ab表里面是有个字段是一致的,那这样可以匹配我要的数据吗?
可以的,需要你发出来比较完整的表结构看一下