前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql 表连接on后面加where和and的区别

sql 表连接on后面加where和and的区别

作者头像
挨踢小子部落阁
发布2023-03-15 21:03:00
1.4K0
发布2023-03-15 21:03:00
举报
代码语言:javascript
复制
create table testA(
       Id number(10) primary key,
       Name varchar(10)
)
insert into testA values(1,'小黄');
insert into testA values(2,'小绿');
insert into testA values(3,'小白');
insert into testA values(4,'小黑');
insert into testA values(5,'小花');
commit

create table testB(
       Id number(10) primary key,
       age number(10)
)
insert into testB values(1,10);
insert into testB values(2,11);
insert into testB values(3,12);
insert into testB values(4,13);
commit

on后面加and

代码语言:javascript
复制
select * from testA a left join testB b  on a.id = b.id and b.age=10

on后面加where

代码语言:javascript
复制
select * from testA a left join testB b  on a.id = b.id where b.age=10

on 是用于消除笛卡儿积的,表连接时不加on会报错,left join语句会从左表那里返回所有的行,即使在右表中没有匹配的行,on后面接and也会兼顾左连接,不管and 后面接什么内容,左表数据都会全部展示 下图语句由于a.name =10在testA没有匹配数据,所以与其关联的testB也匹配不到数据。

代码语言:javascript
复制
select * from testA a left join testB b   on a.id = b.id and a.name='10'

使用where就是对连接后的结果集进行条件筛选

代码语言:javascript
复制
select * from testA a left join testB b   on a.id = b.id where a.name='10' 
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-29,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 挨踢小子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com