项目场景:
目标:需要获得另一张表的字段信息。
已知两张表的关联字段。只需要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 这张表,再用新表来关联获取信息。