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

Problema Com Inner Join. Não Consigo.


Bruno Coelho

Pergunta

Olá pessoal,

estou com um probleminha não estou conseguindo usar o INNER JOIN, o engraçado é que eu já usei está função outras vezes. A única diferença é que eu já conseui usar isso num banco MsSQL e agora estou usando Acess, porém sei que é possível fazer isso em Acess também.

Bom, vamos ao pepino, é o seguinte eu tenho um tabela principal de links que eu irei registrar e algumas informações como localizacao, fornecedor, tipo eu trago de outra tabela, ou seja, apenas gravo o ID na tabela Links e com esse ID puxo de outras tabelas as informações, é para isso que uso o INNER JOIN.

E a complicação é a seguinte:

Se eu uso apenas um INNER JOIN funciona corretamento, ou seja, acredito que a SINTAX esteja correta, porém se uso mais de um INNER JOIN no mesmo select ele não funciona. Veja o Código:

strSQL = "SELECT L.ID AS IDLoko,* FROM Links AS L "
strSQL = strSQL & "INNER JOIN Param_Localizacoes AS PL "
strSQL = strSQL & "ON L.ID_Localizacao = PL.ID_Localizacao "
strSQL = strSQL & "INNER JOIN Param_Fornecedores AS PF "
strSQL = strSQL & "ON L.ID_Fornecedor = PF.ID "
strSQL = strSQL & "INNER JOIN Links_Param_Tipo AS PT "
strSQL = strSQL & "ON L.ID_Tipo = PT.ID "
Set RS = CX.Execute(strSQL)

Reparem que nesta função eu tenho 3 INNER JOIN num select e não funciona, nem se eu deixar 2 INNER JOIN funciona. Porém se eu deixar apenas um INNER JOIN, independentemente de qual seja, funciona corretamente. Esquisito né?!? Ou seja, se eu deletar as linhas dos outro INNER JOIN e deixar apenas um, tanto faz qual, se é localização, fornecedor ou tipo ele funciona, mas com mais de um INNER JOIN ele não funciona.

O que será que está acontecendo, alguém pode me ajudar??? Se não entenderem muito bem avise q eu explico melhor.

Desde já, agradeço.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Olá pessoal,

estou com um probleminha não estou conseguindo usar o INNER JOIN, o engraçado é que eu já usei está função outras vezes. A única diferença é que eu já conseui usar isso num banco MsSQL e agora estou usando Acess, porém sei que é possível fazer isso em Acess também.

Bom, vamos ao pepino, é o seguinte eu tenho um tabela principal de links que eu irei registrar e algumas informações como localizacao, fornecedor, tipo eu trago de outra tabela, ou seja, apenas gravo o ID na tabela Links e com esse ID puxo de outras tabelas as informações, é para isso que uso o INNER JOIN.

E a complicação é a seguinte:

Se eu uso apenas um INNER JOIN funciona corretamento, ou seja, acredito que a SINTAX esteja correta, porém se uso mais de um INNER JOIN no mesmo select ele não funciona. Veja o Código:

strSQL = "SELECT L.ID AS IDLoko,* FROM Links AS L "
strSQL = strSQL & "INNER JOIN Param_Localizacoes AS PL "
strSQL = strSQL & "ON L.ID_Localizacao = PL.ID_Localizacao "
strSQL = strSQL & "INNER JOIN Param_Fornecedores AS PF "
strSQL = strSQL & "ON L.ID_Fornecedor = PF.ID "
strSQL = strSQL & "INNER JOIN Links_Param_Tipo AS PT "
strSQL = strSQL & "ON L.ID_Tipo = PT.ID "
Set RS = CX.Execute(strSQL)

Reparem que nesta função eu tenho 3 INNER JOIN num select e não funciona, nem se eu deixar 2 INNER JOIN funciona. Porém se eu deixar apenas um INNER JOIN, independentemente de qual seja, funciona corretamente. Esquisito né?!? Ou seja, se eu deletar as linhas dos outro INNER JOIN e deixar apenas um, tanto faz qual, se é localização, fornecedor ou tipo ele funciona, mas com mais de um INNER JOIN ele não funciona.

O que será que está acontecendo, alguém pode me ajudar??? Se não entenderem muito bem avise q eu explico melhor.

Desde já, agradeço.

Link para o comentário
Compartilhar em outros sites

  • 0

Se eu deixar os 3 INNER JOIN juntos aparece esse erro:

Tipo de erro:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'L.ID_Localizacao = PL.ID_Localizacao INNER JOIN Param_Fornecedores AS PF ON L.ID_Fornecedor = PF.ID INNER JOIN Links_Param_Tipo AS PT ON L.ID_Tipo = PT.ID'.
/techportal/innerjoin.asp, line 14

Obs.: Já tentei deixar apenas 2 INNER JOIN, com todas as possibilidades entre os três, trocando ordem as ordem e tudo mais. Praticamente já tentei de tudo. Acredito que seja algum erro de sintax, porém eu acredito que a sintax esteja certa, por isso que digo que está esquisito.

Só se precisar de mais alguma sintax pra quando vai usar dois, sei lá.

Link para o comentário
Compartilhar em outros sites

  • 0

cara primeiramente teste isso no access crie uma consulta com esta sql, se funcionar no access .. verifique como está mostrando os dados e como esta seu esquema de loop, passei por problemas assim a poucos dias atras e no meu caso era problemas de loop

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...