Mysql操作多表查询

本文详细介绍了MySQL中的多表查询,包括笛卡尔积、连接查询(如内连接、外连接)及其限制条件,以及子查询和合并查询结果集的概念和使用方法。通过实例解析,帮助读者掌握如何在数据库中高效地进行多表联合查询。
摘要由CSDN通过智能技术生成

多表查询是指在关系型数据库中,通过同时查询多个数据表来检索相关数据的操作。这种查询方式通常用于需要在多个数据表中搜索和比较数据的情况,以获取更完整和准确的结果。

在多表查询中,使用联接(join)操作将多个表连接在一起,并使用条件语句来指定要检索的数据。联接操作可以使用不同的方式进行,包括内部联接、外部联接、左联接、右联接等,这些方式可以根据查询需求选择不同的联接方式。

多表查询可以提高查询效率,避免重复的数据输入,并且可以根据需要获取更详细的查询结果。不过,在进行多表查询时,需要注意数据库表之间的关系、数据类型和查询条件等因素,以确保查询结果的准确性和完整性。

举个例子,如果我们需要查询一篇文章的作者姓名和发表时间,那么这个信息通常会被保存在不同的两个表中,一张表存储文章的信息,包括文章标题、内容等;另一张表存储作者的信息,包括姓名、ID等。在这种情况下,如果只查询文章表,我们只能获取文章的基本信息,无法获得作者的信息;但如果使用多表查询,我们就可以将两个表联接起来,获取文章的作者信息,从而得到更全面和详细的查询结果。

多表查询基本写法

-- 从两张表中查询数据
select * from A, B;

-- 从两张表中查询数据
select * from A join B;

TIPS:

其实,连接两张表进行查询,标准SQL采用的是join的语法。上述的select * from A, B;的写法,其实只是在MySQL中的“方言”,只在MySQL中生效,在其他的DBMS中就不一定能使用了。

select * from A, B; 其实是等价于 select * from A inner join B; 的。那么什么是inner join呢?后面会讲。

笛卡尔积

在做连接查询的时候,一张表中的每一行数据都会和另一张表中的每一行数据进行关联,形成笛卡尔积。

假如A表中有m行数据,B表中有n行数据,连接查询之后的结果就是m*n行数据,其中有太多的数据是我们不需要的了。

image-20220109012327595

连接查询条件限制

通过上图,我们知道了在两张表进行连接查询的时候,会出现大量的无效的数据。因此,我们就需要通过一些操作,去除连接查询之后的无用的数据,只得到我们需要的数据!而这个过程是可以通过条件的限制来实现的:

  1. MySQL的查询方言

    -- 用where进
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值