Ir para conteúdo

POWERED BY:

Arquivado

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

raphaelFree

select de chaves primarias

Recommended Posts

opa! tenho um probleminha e não sei como resolver, tenho 2 tabelas, uma de venda que contem somente chaves e tenho uma tabela produto. O que eu preciso é fazer uma junção (inner join) entre elas, ou seja eu preciso apenas das chaves primarias de cada tabela. Então fiz um join e me retornou o seguinte resultado Ambiguous column name 'cod_venda'.. Sei que preciso de um outro tipo de select mas no momento naum estou lembrado, será que podes me dar uma forçinha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pela parte da mensagem, indica que o mesmo nome de campo existe em tabelas diferentes, mas ao tentar utilizar tal campo não especificou de que tabela será utilizado.

ex: considerando que nas tabelas teste1 e teste2 existe o campo chamado id, o seguinte SQL dará erro:

select * from teste1 inner join teste2 on teste1.id = id

pq teve um id que não foi especificado de qual tabela utilizar, mesmo tendo especificado um deles. então o certo seria

select * from teste1 inner join teste2 on teste1.id = teste2.id

deve ser algo por aí o seu problema (não necessariamente é no Inner, pode ser no where, select...), se não resolver posta a mensagem de erro completa e se possível o SQL que você está tentando executar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou te passar meu o sql então.

 

SELECT cod_venda, cod_cliente, cod_prod

FROM cliente

inner join vendas

on cliente.cod_cliente = vendas.cod_cliente

inner join item_venda

on item_venda.cod_venda = vendas.cod_venda

inner join produtos

on item_venda.cod_prod = produtos.cod_prod

 

o erro é o seguinte:

 

Caused by: java.sql.SQLException: Ambiguous column name 'cod_venda'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes do nome do campo coloque o nome da tabela seguido de um ponto '.'

Como voce tem campos com o mesmo nome nas tabelas ele não sabe qual deles usar.

 

SELECT cod_venda, cod_cliente, cod_prod

SELECT tabela.cod_venda, tabela.cod_cliente, tabela.cod_prod

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está dizendo que quer a coluna cod_venda, mas não diz de qual tabela. Crie apelidos para as tabelas e resolva esse problema.

 

Exemplo:

 

SELECT

b.cod_venda, a.cod_cliente, c.cod_prod

FROM

cliente a

INNER JOIN

vendas b ON a.cod_cliente = b.cod_cliente

INNER JOIN

item_venda c ON c.cod_venda = b.cod_venda

INNER JOIN

produtos d ON c.cod_prod = d.cod_prod

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.