MySQL 联合查询

笛卡尔积

笛卡尔积:多表查询的核心操作。 笛卡尔积的计算很简单,就类似于排列组合。笛卡尔积是针对任意两张表之间的运算。
举例:
在这里插入图片描述
在这里插入图片描述
笛卡尔积计算过程:先拿第一张表的第一条记录,和第二张表的每个记录,分别组合,得到一组新的记录。然后再拿第一张表的第二条记录,和第二张表的每条记录,分别组合,又得到新的记录,最终得到的记录就是笛卡尔积。针对两张表计算笛卡尔积,笛卡尔积的列数,就是 A 的列数 + B 的列数。笛卡尔积的行数,就是 A 的行数 * B 的行数。笛卡尔积的效率不高,但是可以借助来完成发复杂的操作。
笛卡尔积用法:select * from 后面跟上多个表名,表名之间用逗号隔开。
两张表中都有 班级Id 这一列,班级Id 的值。班级Id 就是连接条件。如果笛卡尔积的两个列名相同,在写条件的时候,就可以通过 表名.列名 的方式来访问。如果列不会混淆,就可以省略表名。代码如下:

select student.name, class.name from student, class where student.classId = class.classId;

通过 表名.列名 就可以区分了。

多表查询一份数据

先建表,并且插入数据:

create table classes (id int primary key auto_increment, name varchar(20), `desc` varchar(100));

create table student (id int primary key auto_increment, sn varchar(20),  name varchar(20), qq_mail varchar(20) ,
                      classes_id int);

create table course(id int primary key auto_increment, name varchar(20));

create table score(score decimal(3, 1), student_id int, course_id int);

建立四个表,然后插入数据:

insert into classes(name, `desc`) values
                                      ('计算机系2020级1班', '学习了计算机原理、C和Java语言、数据结构和算法'),
                                      ('中文系2020级3班','学习了中国传统文学'),
                                      ('自动化2020级5班','学习了机械自动化');

insert into student(sn, name, qq_mail, classes_id) values
                                                       ('09982','黑旋风李逵','xuanfeng@qq.com',1),
                                                       ('00835','菩提老祖',null
MySQL关联查询是一种在多个表之间建立关联并检索相关数据的查询方式。MySQL关联查询的语法通常使用JOIN关键字将两个或多个表连接在一起,根据指定的连接条件来获取相关的数据。 在MySQL中,关联查询可以通过使用内连接、外连接或交叉连接来实现不同类型的连接操作。内连接通过匹配两个表之间的共同值来返回符合条件的数据。外连接可以返回不满足连接条件的记录,并将NULL值填充到相应的列中。而交叉连接则返回两个表的所有可能组合。 关联查询可以在SELECT语句的FROM子句中使用子查询来实现更复杂的查询需求。子查询可以作为主查询的一部分,并且可以在WHERE子句、FROM子句、HAVING子句或SELECT子句中使用。 总结起来,MySQL关联查询是通过连接多个表并根据指定的连接条件来检索相关数据的查询方式。它可以使用内连接、外连接或交叉连接,并且可以在主查询的不同位置嵌入子查询来实现更复杂的查询需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [《MySQL数据库》关联查询](https://blog.youkuaiyun.com/qianfeng_dashuju/article/details/107099405)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lockey-s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值