【中秋节大无语事情】关联字段类型要一致

项目场景:

目标:需要获得另一张表的字段信息。

已知两张表的关联字段。只需要left join获得信息


问题描述

运行的时候一直卡住在97%,大概有三个小时,都没有匹配成功。(麻了。。。)


原因分析:

中间尝试了很多原因,以为是关联表太大、表的无关字段太多、平台资源缺乏。

最后,才明白,原来是关联字段(on 后面两张表的关联字段不同类型)类型不一致的锅。。。。


解决方案:

1、可以直接cast()用cast(),不过要注意cast()不能执行四舍五入或截断操作,cast('12.5' as int)返回的是12,是一个整数值。本例遇到的情况是一张表的关联Id是decimal(24,0)类型,另一个表关联字段serv_addr_id是varchar(64)类型。(吐血jpg),解决方法:可以直接cast(serv_addr_id as decimal(24,0)) =id

2、第二种方法有点笨,也可以解决,新建一张表(包含关联字段以需要提取信息的字段),将关联字段类型一开始就设置为decimal(24,0),insert into 这张表,再用新表来关联获取信息。

猜你喜欢

转载自blog.csdn.net/sodaloveer/article/details/126949394