Esse erro ocorreu quando foi comparado no join com campo varchar com int.
Por mais que a informação fosse a mesma o tipo de dado estava diferente, e o banco de dados entendia como diferente. A maneira mais fácil de resolver esse problema definitivamente é trocar o tipo de dado, normalmente se opta pelo int pois é mais usado em id. Se não for possível trocar o tipo de dado no banco tem como corrigir na query basta passar o campo varchar para int ficando algo assim: ... on (a.codigo::int = b.tabela_id)