sql 左连接,右连接,等值连接,case-when

1.内容

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
现以下两张t_a,t_b表
这里写图片描述
这里写图片描述

2.左链接
select * from t_a a 
left join t_b  b 
on a.aid = b.bid

这里写图片描述
左连接会以左表为基础表返回全部数据,而右表只会返回全符合条件的数据

3.右连接
select * from t_a a 
right join t_b  b 
on a.aid = b.bid

这里写图片描述
右连接会以右表为基础表返回全部数据,而左表只会返回全符合条件的数据

4.等值连接
select * from t_a a 
inner join t_b  b 
on a.aid = b.bid

这里写图片描述
等值连接会返回条件相等的数据

5.case-when

现有下表t_city
这里写图片描述
现将id=1 替换为北京,2=上海,3=广州,4=深圳 ,否则为其他

select  case a.id
when 1 then '北京' 
when 2 then '上海'
when 3 then '广州'
when 4 then '深圳'
else  '其他' end city_name,
a.number
from t_city a

或者

select  case 
when a.id=1 then '北京' 
when a.id=2 then '上海'
when a.id=3 then '广州'
when a.id=4 then '深圳'
else  '其他' end city_name,
a.number
from t_city a

这里写图片描述
前一个为简单Case函数 ,后一个为Case搜索函数 ,第二个更为灵活

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们在处理数据库中的多个表时,连接操作是非常常见的。SQL中有几种连接类型,包括左连接右连接、内连接和外连接。 1. 左连接Left Join): 左连接返回左表中的所有记录,以及右表中与左表匹配的记录。如果右表中没有匹配的记录,则返回NULL值。 左连接的语法如下: ``` SELECT 列名 FROM 左表 LEFT JOIN 右表 ON 连接条件; ``` 相关问题: 1. 什么是左连接? 2. 左连接的语法是什么? 3. 左连接返回的结果是什么? 2. 右连接(Right Join): 右连接返回右表中的所有记录,以及左表中与右表匹配的记录。如果左表中没有匹配的记录,则返回NULL值。 右连接的语法如下: ``` SELECT 列名 FROM 左表 RIGHT JOIN 右表 ON 连接条件; ``` 相关问题: 1. 什么是右连接? 2. 右连接的语法是什么? 3. 右连接返回的结果是什么? 3. 内连接(Inner Join): 内连接返回两个表中满足连接条件的记录。只有在两个表中都存在匹配的记录时,才会返回结果。 内连接的语法如下: ``` SELECT 列名 FROM 表1 INNER JOIN 表2 ON 连接条件; ``` 相关问题: 1. 什么是内连接? 2. 内连接的语法是什么? 3. 内连接返回的结果是什么? 4. 外连接(Outer Join): 外连接包括左外连接和右外连接,它返回两个表中满足连接条件的记录,以及未匹配的记录。 左外连接返回左表中的所有记录,以及右表中与左表匹配的记录。如果右表中没有匹配的记录,则返回NULL值。 右外连接返回右表中的所有记录,以及左表中与右表匹配的记录。如果左表中没有匹配的记录,则返回NULL值。 外连接的语法如下: ``` SELECT 列名 FROM 左表 LEFT JOIN 右表 ON 连接条件; SELECT 列名 FROM 左表 RIGHT JOIN 右表 ON 连接条件; ``` 相关问题: 1. 什么是外连接? 2. 外连接的语法是什么? 3. 外连接返回的结果是什么?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值