SQL中连接操作产生额外行的专业术语是什么?
SQL连接中生成额外行的专业术语
当在两张表/查询之间进行连接时:
with cte1 (id) as ( select 1 from dual), cte2 (id) as ( select 1 from dual union all select 1 from dual) select cte1.id as cte1_id, cte2.id as cte2_id from cte1 left join cte2 on cte1.id = cte2.id -- 查询结果: -- CTE1_ID CTE2_ID -- 1 1 -- 1 1
不出所料,该连接生成了额外的行。连接左侧的查询原本只有1行,但由于连接操作,结果集变成了2行。
这种场景的专业术语是行膨胀(Row Explosion),也可称之为笛卡尔积式行扩增——本质是当关联条件匹配多行时,左侧的每一行会与右侧所有匹配行进行组合,最终导致结果集行数远超原表行数,这就是行膨胀的典型表现。
你给新手讲解时用的“1:多连接导致额外行”是很直观的表述,专业语境下用“行膨胀”来描述这种结果集行数大幅增加的现象最为准确。
内容的提问来源于stack exchange,提问作者User1974
相关产品推荐
相关产品推荐

