MYSQL连接查询(1.内连接)

本文介绍了数据库连接查询的基础知识,重点讲解了内连接查询,包括交叉连接(笛卡尔积)的概念和内连接的类型。内连接是通过连接谓词将多张表的数据结合,形成新的结果表。示例展示了如何使用内连接查询获取线路表和车辆表的匹配信息。下篇将探讨更复杂的多表连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连接查询分为四个部分:
一.内连接查询

一.内连接查询概念
1.查询信息的来源如果是来自多张表,则必须对这些表进行连接查询。
2.连接是把不同表的记录连接到一起的最普遍的方法,通过连接查询可讲多个表作为一个表进行处理。
3.连接查询分为内连接和外连接。

1.交叉连接(笛卡儿积)概念
a.交叉连接(Cross Join),又称“笛卡尔连接(Cross Join)”或“叉乘(Product)”,它是所有类型的内连接基础。
b.如果把表视为行记录的集合,那么交叉连接即返回这两个合集的笛卡儿积,返回到结果集合中的数据行数第一第一张表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
示例实现线路表与车辆表笛卡儿积

select count(*) from line

在这里插入图片描述
2.内连接查询概要
1.内连接基于连接谓词,它将两张表(如A和B)的列组合在一起,产生新的结果表。
2.内连接查询会将A表的每一行和B表的每一行进行比较,并找出满足连接谓词的组合。当连接谓词被满足,A和B中匹配的行会按列组合(并排组合)成结果集中的一行。
3.内连接分三种:交叉连接、相等连接和自然连接。
4.内连接语法:

SELECT fieldlist FROM table1[INNER] JOIN table2
ON table1.column1=table2.column2
[where condition]

语法说明:
1.fieldlist:table1表和table2表中的字段列。如果fieldlist 取两张表所有列,则课用“*”代替,此时会出现连接依据重复,即table1表的column1与table2表的column2为重复列。
2.table1[INNER] JOIN table2:将table1表与table2表进行内连接,INNER 可省略。
3.table1.column1=table2.column2:连接条件,其中column1和column2为table1表与table2表的关联列,通常它们为外键和主键列。
4.“inner”可省略。
5.“where condition”可以省略,它为查询条件表达式。

内连接案例:使用内连接获取所有的路线信息和车辆信息。

SELECT *
from line
JOIN vehicle 
ON line.lineID=vehicle.lineID

分析:
1.车辆表vehicle 与线路表line存在一个连接依据列——lineID。
2.连接以上两张表,使用内连接并采用“*”作为字段列表
3.“lineID”和“lineID1”为重复列,它们是连接依据列。在这里插入图片描述
下一篇讲多表连接,敬请期待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

℃晚风℡凉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值