SQL中的表连接

文章介绍了数据库查询中的几种表连接方式,包括LEFTJOIN、RIGHTJOIN、INNERJOIN、FULLJOIN(LEFTJOINUNIONRIGHTJOIN在MySQL中的实现)以及CROSSJOIN。通过举例旅游目的地表和旅游意愿表的连接,展示了各种连接方式如何处理数据缺失的情况,帮助新手理解不同连接的差异。

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

新手记录

1、尽量使用表连接,不要套循环

2、left join/right join/inner join/full join(left join union right join mysql)/cross join/union all(不去重)

left join 左边的就是主表,right join 右边的就是主表

表A:旅游目的地表

旅游地ID名称路程
001西藏2000KM
002哈尔滨2000KM
003贵州1500KM
004威海1000KM

表B:旅游意愿表

人员ID姓名旅游地ID
12110701花花004
12110702草草002
12110703云云004
12110704天天001
12110705穗穗NULL

表A左连接表B:

旅游地ID名称路程人员ID姓名
001西藏2000KM12110704天天
002哈尔滨2000KM12110702草草
003贵州1500KMNULLNULL
004威海1000KM12110701花花
004威海1000KM12110703云云

表A右连接表B:

人员ID姓名旅游地ID名称路程
12110701花花004威海1000KM
12110702草草002哈尔滨2000KM
12110703云云004威海1000KM
12110704天天001西藏2000KM
12110705穗穗NULLNULLNULL

内连接:

人员ID姓名旅游地ID名称路程
12110701花花004威海1000KM
12110702草草002哈尔滨2000KM
12110703云云004威海1000KM
12110704天天001西藏2000KM

外连接:

人员ID姓名旅游地ID名称路程
12110701花花004威海1000KM
12110702草草002哈尔滨2000KM
12110703云云004威海1000KM
12110704天天001西藏2000KM
12110705穗穗NULLNULLNULL
NULLNULL003贵州1500KM

交叉连接(笛卡尔积):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值