Oracle左连接过滤条件注意事项

1、left join 结果集行数与主表查询结果集行数一致

2、主表与辅表多关联条件要括起来

3、对于辅表的过滤条件写在on后面是先对辅表过滤后再与主表关联,写在where后面是对主表与辅表关联后的结果集再进行过滤

4、对于主表的过滤条件写在on后面不生效,只能写在where后面

例如:

java 复制代码
select t.t1,
	listagg(d.d2,',')  as d2s 
	from table1 t
	left join table2 d
	on (t.t1 = d.d1 and t.t2 = d.d2 and d.status in ('0','1'))
	where t.status='3'
	and t.roleid in ('roleA','roleB')
	and t.orgcode in ('3500')
group by t.t1

d.status in ('0','1')过滤条件写on后面是先对表d过滤缩小范围后再与主表关联,若写在where后面则是对主表与辅表关联后结果集再进行过滤。
相关推荐
2301_800256114 分钟前
地理空间数据库作业笔记——查询最偏僻的城市
数据库·笔记·sql·postgresql·1024程序员节
大叶梧桐11 分钟前
oracle数据泵数据库自动备份脚本
oracle·计划任务·自动备份
卓码软件测评44 分钟前
软件可用性测试历史概念✅软件可用性测试的国际标准✅软件可用性测试方法
数据库·单元测试·可用性测试·软件需求
R.lin1 小时前
OSS服务模块-基于数据库配置的Java OSS服务解决方案,支持MinIO、七牛云、阿里云和腾讯云
java·数据库·后端·mysql
橄榄熊1 小时前
使用VScode 插件,连接MySQL,可视化操作数据库
数据库·mysql
自由会客室1 小时前
Ubuntu24安装MongoDB7
数据库·mongodb
蜡笔小炘2 小时前
SQL sever数据库--第二次作业
数据库·sql·oracle
木易 士心2 小时前
软考数据库系统工程师知识点详解(高频考点与备考建议)
数据库·1024程序员节
MoonBit月兔2 小时前
MoonBit Pearls Vol.12:初探 MoonBit 中的 JavaScript 交互
开发语言·javascript·数据库·交互·moonbit