Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

obetinho

Inner Join com chave string numerica

Recommended Posts

Olá,tenho a seguinte consulta no mysql (navicat)

 SELECT
funcionarios.idfuncionarios, funcionarios.pessoa_id, funcionarios.cargo_id, pessoas.idpessoas, pessoas.nome
FROM funcionarios
INNER JOIN pessoas ON funcionarios.pessoa_id = pessoas.idpessoas

 

tabela pessoas
idpessoas char 36 | nome
12 | Tamara da Conceição Medeiros Freitas |
1000 | Roger Juarez da Silva |

tabela funcionarios
idfuncionarios char36 | pessoa_id char 36 | data_entrada
10 | 1000 | 1969-12-31
21 | 12 | 2011-07-26
13 | 1000 | 2012-04-10


aparentemente está correta, só que não retorna nenhum resultado.
Fiz uma alteração no banco onde passei todas as chaves de INT para CHAR 36, as tabelas já estavam populadas com INT nas chaves, então ficaram char com numeros, tipo: 1,2,3,4... porem string.
notei que se eu passar novamente para int, o sql retorna resultado.
notei tbm que, se eu pegar qualquer chave ex. "2" e trocar por "a" junto com seu registro respectivo, cujo 2 era chave estrangeira, a linha é retornada na consulta, mas somente ela...


pergunta: O mysql não faz join se as chaves forem numeros em string?
eu teria que concatenar uma letra em todas as chaves pra funcionar?


é bem curioso o caso.
obs.: collate e charset estao iguais

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando vc um campo como char(10) e preenche com um valor 99 por exemplo

esse campo vai ser interpretado como 99 seguido de 8 espaços em branco, fechando 10 caracteres. oq vc pode fazer é dar um trim na hora de juntar ou mudar o campo para varchar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, considere ler este tópico urgente.

 

:seta: http://forum.imasters.com.br/topic/191441-escolhendo-um-tipo-de-campo-correto/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.