Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas INNER JOIN


Carlos Peres

Pergunta

Olá pessoal,

Este é meu primeiro post, então desculpem qualquer coisa!

Bom, vamos a dúvida:

Tenho 3 tabelas e preciso aplica o inerjoin entre elas, já estou ficando louco pois em lugar algum ninguém me ajuda encontrar uma solução.

Tabela: servicos [id, empresa, contato, funcionario, destino]

Tabela: funcionarios [id, nome, endereco, telefone, login, senha]

Tabela: clientes [id, cnpj, ie, empresa, contato]

Na tabela servicos eu gravo os dados de um fomulario e nos campos [empresa, funcionario] em servicos eu gravo somente o Id da empresa e o Id do funcionario.

Estou usando este SELECT para buscar os dados e me retornar toda a tabela servicos com o nome do funcionario e nome da empresa:

"SELECT servicos.*, clientes.empresa, funcionarios.nome 
FROM servicos 
INNER JOIN funcionarios ON servicos.motoqueiro = funcionarios.Id 
INNER JOIN clientes ON servicos.empresa = clientes.Id"

50% do problemas resolvido, ele me retorna o nome da empresa mas o nome do funcionario só me retorna o ID.

alguém aqui tem um luz?

Lembrando que sou novo em MySQL

Obrigado!

Editado por Denis Courcy
melhorar entendimento do código
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Oi Carlos!

Existe um campo com o nome motoqueiro mesmo na sua tabela de serviços?

Porque você relacionou como: "Tabela: servicos [id, empresa, contato, funcionario, destino] " (sem campo motoqueiro)

Acho que ali seria servicos.funcionario.

De qualquer forma creio que isto retornaria em um erro devido ao fato de não existir o campo motoqueiro. Fora este problema que não sei se foi engano ao digitar o exemplo, não encontrei problema na string.

"SELECT servicos.*, clientes.empresa, funcionarios.nome

FROM servicos

INNER JOIN funcionarios ON servicos.motoqueiro = funcionarios.Id

INNER JOIN clientes ON servicos.empresa = clientes.Id"

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Carlos

Posso estar enganado, mas creio que o seu segundo INNER JOIN esteja incorreto. Você fez a união entre as tabelas "serviços" e "clientes", mas acredito que a união deva ser feita entre "funcionarios" e "clientes".

Além disso: os campos que você usa para unir as tabelas têm o mesmo tipo? Isto é, "serviços.funcionario" está declarado da mesma forma que "funcionarios.id"? Isto é essencial para o funcionamento correto do JOIN.

Abraços!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...