iMasters Fóruns: [Resolvido] Relacinamento de 3 tabelas - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

[Resolvido] Relacinamento de 3 tabelas

#1 Membro online   Claudio Neto Ícone

  • Ícone
  • Grupo: Moderadores
  • Posts: 1631
  • Cadastrado: 07-fevereiro 07
  • Localização:São Paulo, SP

Postou 13 março 2009 - 12:39

Tenho três tabelas em meu access, sendo duas delas de dados e a terceira só para fazer o relacionamento dos dados.

Assim, uma de cadastro de clientes, uma de produtos e a terceira de pedidos, onde só indico o código do cliente e do produto.

Montei um inner join relacionando as três tabelas, mas só dá erro. O Access não suporta esse tipo de consulta?

A query ficou assim:

select clientes.nome, produtos.nome from clientes inner join pedidos on clientes.codcli = pedidos.codcli
inner join produtos on produtos.codprod = pedidos.codprod


E o erro que dá é esse:

Syntax error (missing operator) in query expression 'clientes.codcli = pedidos.codcli
inner join produtos on produtos.codprod = pedidos.codprod'.

Montei a mesma estrutura no SQL Server 2000 e funcionou, então acho que o problema é com o Access. Há algo que possa fazer para evitar o erro?

Obrigado.

#2 Membro online   Claudio Neto Ícone

  • Ícone
  • Grupo: Moderadores
  • Posts: 1631
  • Cadastrado: 07-fevereiro 07
  • Localização:São Paulo, SP

Postou 13 março 2009 - 12:50

Já consegui. Ficou assim:

SELECT CLIENTES.*, PRODUTOS.*
FROM CLIENTES, PRODUTOS
WHERE PRODUTOS.codProduto = (select codprod from os where situacao = 1) AND CLIENTES.codCliente = (select codcli from os where situacao = 1);


#3 Membro online   Claudio Neto Ícone

  • Ícone
  • Grupo: Moderadores
  • Posts: 1631
  • Cadastrado: 07-fevereiro 07
  • Localização:São Paulo, SP

Postou 13 março 2009 - 16:31

A forma acima não funciona não. Ela só dá certo enquanto só há um registro na tabela.

Essa sim deu certo:
SELECT CLIENTES.*, PRODUTOS.*, os.codOS
FROM CLIENTES, PRODUTOS, OS
where clientes.codcliente = os.codcli
and produtos.codproduto = os.codprod
and os.situacao = 2;


Nossa, como ele é limitado, que horrivel.

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)