mysql中join的查询结果中出现null字段

本文详细介绍了SQL中的三种连接查询方式:内连接(inner join)、左连接(left join)和右连接(right join),并提供了实例帮助理解不同连接方式下数据的获取方式及可能出现的NULL值处理。

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

join 使用来连接多表字段进行查询,分为3中情况:inner join, left join, right join

  1. inner join: 取得两个表中匹配的数据
  2. left join: 取得左表(left join左边的表)中的全部数据和右表的匹配数据
  3. right join: 取得右表中的全部数据和左表的匹配数据

这样的话 left join 和 right join可能会出现null字段, 因为在左(右)表中的全部数据不一定在右表(左表)都右匹配,这样没有匹配到的话就会出现null字段

当然使用inner join不会出现上述情况, 直接进行的就是全部匹配

去掉null字段可以在后面在加一个where条件进行判断

  • select test1.t2.name as ‘名字’, test1.t2.sex as ‘性别’, test1.t3.age as ‘年龄’ from test1.t2 left join test1.t3 on test1.t2.name = test1.t3.name where test1.t2.name = test1.t3.name;
  • +——–+——–+——–+
    | 名字 | 性别 | 年龄 |
    +——–+——–+——–+
    | 赵 | 男 | 23 |
    +——–+——–+——–+

  • select test1.t2.name as ‘名字’, test1.t2.sex as ‘性别’, test1.t3.age as ‘年龄’ from test1.t2 left join test1.t3 on test1.t2.name = test1.t3.name;

  • +——–+——–+——–+
    | 名字 | 性别 | 年龄 |
    +——–+——–+——–+
    | 赵 | 男 | 23 |
    | Sanny | 女 | NULL |
    +——–+——–+——–+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值