JOIN无返回结果、LEFT JOIN返回全NULL的SQL表连接问题排查
问题分析与修正
你的问题出在两处字段名的拼写错误上:
- 连接条件字段名写错:depriv表中存储LSOA编号的字段是
lsao,但你写的是b.lsoa,字母顺序颠倒,导致没有匹配的关联记录。 - 查询目标字段错误:depriv表里不存在
decile字段,对应的剥夺指数相关字段是rank。
修正后的内连接语句:
SELECT a.lsoa11, b.rank AS decile FROM postcode a JOIN depriv b ON a.lsoa11 = b.lsao;
修正后的左连接语句:
SELECT a.lsoa11, b.rank AS decile FROM postcode a LEFT JOIN depriv b ON a.lsoa11 = b.lsao;
如果后续仍出现匹配问题,可额外检查字段值是否存在隐形空格,此时可以用TRIM()函数处理后再关联,比如TRIM(a.lsoa11) = TRIM(b.lsao)。
内容的提问来源于stack exchange,提问作者Thomton
相关产品推荐
相关产品推荐

