Boa noite pessoa, estou tentando fazer uma consulta em SQL mas não sei se essa é possivél…
TENHO 3 TABELAS
PESSOA, FORNECEDOR E CIDADE
a tabela PESSOA tem uma chave estrangeira de cidade ja a tabela FORNECEDOR tem uma chave estrangeira de pessoa e outra de cidade.
Gostaria de trazer na consula os dados de pessoa e fornecedor onde as chaves são iguais isso onde isso ja fiz. assim Select p.* FROM pessoa p INNER JOIN p.id_pessoa = f.cod_pessoa. Porem gostaria de trazer tb na mesma consulta as cidades de pessoa e tb a de fornecedor sendo que as cidades das tabelas pessoa e fornecedor são diferentes.
Ate consegui trazer as cidades da tabela pessoa junto na SQL porem não consegui juntar a da fornecedor tb ou seja retornar as cidades da tabela fornecedor atraves da chaves estrangeira.
consegui retornar os dados do banco com a ajuda de vcs… porem agora eu tentei fazer isso
exemplo
jtxtField.setText(rs.getString(“c.nome_cidade”));
não consegui pois diz que coluna não foi encontrada no resultset… como faço para setar os dados do rs para os campo sendo que não posso utilizar apenas nome_cidade e tenho que informa sempre se é c.nome_cidade ou c2.nome_cidade… alguma ideia???
vlww
jamirdeajr
Olá Naruto,
Já tentou usar ‘aliases’ nos nomes dos campos ?
Exemplo:
PreparedStatementpstmt=conn.prepareStatement("SELECT f.nome as fnome, c.nome_cidade as ccidade, p.nome as pnome, c2.nome_cidade as c2cidade"+" from fornecedor f "+" INNER JOIN cidade c on f.id_cidade = c.id "+"INNER JOIN pessoa p on f.id_pessoa = p.id "+"INNER JOIN cidade c2 on p.id_cidade = c2.id ");ResultSetrs=pstmt.executeQuery();if(rs.next()){System.out.println(rs.getString("fnome"));System.out.println(rs.getString("ccidade"));System.out.println(rs.getString("pnome"));System.out.println(rs.getString("c2cidade"));}
Naruto
então tentei sim porem utilizando assim p.* AS p ao nçao deu certo peguei ao invez de informa o nome da coluna informei a posição
no getString(1) por exemplo.