其他分享
首页 > 其他分享> > 笛卡尔积现象

笛卡尔积现象

作者:互联网

笛卡尔积现象:当进行多张表联合查询的时候,在没有任何条件进行限制情况下,最终查询结果条数是多张表记录条数的乘积!

1、建表

create table `student` (
    `sid` int(15) not null auto_increment comment '学号',
    `sname` varchar(30) not null  comment '姓名',
    `cid` varchar(30) null comment '班号',
    primary key (`sid`)
)engine=innodb default charset=utf8
insert into student(`sname` , `cid`) 
value ('张三', '1'), ('李四', '1'), ('王五', '1'),
       ('赵六', '2'), ('钱七', '2')
create table classroom(
    cid varchar(30) not null comment '班号',
    cname varchar(30) not null comment '班级名',
    primary key(`cid`)
)engine=innodb default charset=utf8;
insert into classroom(`cid`, `cname`) value ('1', '软件工程'), ('2', '网络工程')

在这里插入图片描述


2、笛卡尔积现象分析

现在给定一个查询需要查出学生所在的班级,显示学生名字、班级名字。

select s.sname, c.cname from student s, classroom c;

在这里插入图片描述


为了解决上述的问题,需要加上一个where条件,只有当学生表中的的班级号和班级表中的班级号对应才进行显示! 注意这里是显示

select s.sname, c.cname from student s, classroom c where s.cid = c.cid;

在这里插入图片描述

标签:comment,班级,varchar,cid,笛卡尔,现象,null
来源: https://blog.csdn.net/weixin_43808717/article/details/117478975