我要查询同时c_name中有计算机和英语的stu_id查询语句是:SELECT a.stu_id FROM score a,score b WHERE a.stu_id = b.stu_id AND a.c_name = '计算机' AND b.c_name = '英语'这样是正确地,但不能理解地是为什么要加上a.stu_id = b.stu_id,如果不加上会出现很多重复地记录再比如这样查询SELECT a.* FROM score a,score b会出现a表10倍的重复记录,能解释一下产生这样的原理吗
3 回答
qq_Dreamy_旧城_0
TA贡献24条经验 获得超2个赞
因为你这里用到了两张表,甚至你以后还会用到三表或多表连接,如果说你不进行一下条件约束,系统是没有思维的,它会把所有符合的结果都展示出来,从而造成了数据冗余,而这里进行了条件约束后,相当于除了你所想要查询的条件后,在给它加了一层约束,也是为了防止数据冗余,我认为就是这样的
添加回答
举报
0/150
提交
取消