SQL OUTER JOIN 解释场景下两类关联表的通用抽象命名咨询
外连接连接角色的通用标准术语
两个技术问询的明确结论
- 可统一指代「左外连接的左表、右外连接的右表」的行业通用标准概念为 Preserved Table(保留表)。这一概念的核心判定依据和方位无关:只要是外连接中无论连接条件是否匹配,自身全部行都会被无条件保留进最终结果集的表,就属于保留表。
- 可统一指代「左外连接的右表、右外连接的左表」的对应通用概念为 Null-Supplying Table(空值供给表,部分场景也称Nullable Table)。这类表的核心特征是:仅当自身行与保留表满足连接匹配条件时,自身字段值才会真实出现在结果中;匹配失败时,该表对应的全部字段位置都会被填充为NULL占位,不会将自身不匹配的行单独返回。
你自拟候选命名的适用性说明
Base table:不适用。这个术语在数据库领域有固定、通用的专属含义,特指物理落地存储的基础表,和视图、CTE、临时表、派生表等非物理存储的查询对象相对应,用它指代外连接的角色会引发严重歧义。Fixed table:不适用。没有行业共识基础,仅靠字面含义无法让其他技术人员直接对应到你想描述的外连接角色,不具备通用性。Open table/Loose table:不适用。属于完全自造的表述,没有行业使用基础,字面含义和外连接的角色特征关联度极低,无法被其他技术人员快速理解。
补充说明:之所以很多教程会用「左表/右表」的方位化表述,本质是为了降低入门理解成本。但只要掌握了上述两个抽象角色的定义,完全可以脱离左/右的方位限制讲解外连接逻辑——比如全外连接(FULL OUTER JOIN)中,参与连接的两张表同时是对方的保留表,也同时是对方的空值供给表,用这两个抽象概念可以无歧义解释所有外连接的规则逻辑。
内容的提问来源于stack exchange,提问作者lukacs
相关产品推荐
相关产品推荐

