SQL技术问询:如何查询嵌套表A.A1并关联B.B1获取指定结果
修正后的SQL查询语句
SELECT a.Id, a.type, b.data FROM A.A1 a LEFT JOIN B.B1 b ON a.Id = b.refId;
核心修改说明
- 替换JOIN类型:原语句用
INNER JOIN只会返回两张表中满足关联条件的行,这会过滤掉A1里没有匹配B1的记录(比如Id=1的行)。改成LEFT JOIN后,会保留左表(A1)的所有记录,当右表(B1)无对应匹配时,data列会返回NULL(即预期的空值效果)。 - 优化列引用:通过表别名
a(对应A.A1)和b(对应B.B1)引用列,比直接写全表名更简洁易读。 - 关联条件
a.Id = b.refId是正确的,匹配了B1的refId与A1的Id关联关系。
执行上述语句后,会得到你预期的结果:
Id type data 1 2 NULL 102 0 70 302 2 8
(注:不同数据库中NULL的显示形式可能略有差异,但本质是无匹配时的空值)
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

