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后面则是对主表与辅表关联后结果集再进行过滤。
相关推荐
砚边数影1 小时前
模型持久化(二):从 KingbaseES 加载模型,实现离线预测
数据库·机器学习·kingbase·模型推理·数据库平替用金仓·金仓数据库
Ama_tor2 小时前
Navicat学习01|初步应用实践
数据库·navicat
山岚的运维笔记2 小时前
SQL Server笔记 -- 第65章:迁移 第66章:表值参数
数据库·笔记·sql·microsoft·sqlserver
番茄去哪了3 小时前
苍穹外卖day05----店铺营业状态设置
java·数据库·ide·redis·git·maven·mybatis
暮色妖娆丶4 小时前
Spring 源码分析 事务管理的实现原理(下)
数据库·spring boot·spring
暮色妖娆丶4 小时前
Spring 源码分析 事务管理的实现原理(上)
数据库·spring boot·spring
LaughingZhu4 小时前
Product Hunt 每日热榜 | 2026-02-18
大数据·数据库·人工智能·经验分享·搜索引擎
是吕先森5 小时前
mysql基础
数据库·mysql·oracle
Zzz 小生6 小时前
LangChain Tools:工具使用完全指南
jvm·数据库·oracle
SQL必知必会6 小时前
SQL 计算百分位数和中位数
数据库·sql