Como usar o ResultSet de um Join?

5 respostas
R

Olá

Como eu identifico os campos das tabelas envolvidas em um JOIN, no resulSet

Exemplo:
Select c.nome, c.estado, e.nome from clientes c inner join estados e where c.estado = e.sigla order by c.nome

Como eu referencio no resultset
rs.getString(“Nome”) // campo nome do cliente na tabela clientes?
ou
rs.getString(“c.Nome”) // campo nome do cliente na tabela clientes?

Obrigado.

5 Respostas

B

rsa_tche:
Olá

Como eu identifico os campos das tabelas envolvidas em um JOIN, no resulSet

Exemplo:
Select c.nome, c.estado, e.nome from clientes c inner join estados e where c.estado = e.sigla order by c.nome

Como eu referencio no resultset
rs.getString(“Nome”) // campo nome do cliente na tabela clientes?
ou
rs.getString(“c.Nome”) // campo nome do cliente na tabela clientes?

Obrigado.

É sempre o mesmo nome dos campos no select, neste caso c.nome.

italo.vendrameto

Deixa sua query assim:

Select c.nome as cliNome, c.estado, e.nome as ufNome from clientes c inner join estados e where c.estado = e.sigla order by c.nome

dai faz a acesso direto:

rs.getString("cliNome") rs.getString("estado") rs.getString("ufNome")

P

ou use o método

getString(int columnIndex)

e passe o index dos campos do seu select, começando por 0.

R

Valeu, pelas dicas

B

Ola,

Vc ja usou uma ferramenta de banco de dados?

Se vc usar ira perceber que quando vc faz uma query e executa o resultado pode conter colunas com nomes repetidos, por exemplo:

Select c.nome, c.estado, e.nome from clientes c inner join estados e where c.estado = e.sigla order by c.nome

Neste caso o conjunto resultado vai perder as referencias para as tabelas origem, o conjunto resultado tera as colunas:

nome | estado | nome

Então se vc buscar por rs.getString("nome"); ele ira te retornar um nome,
mas não sabe-se ao certo qual, pela lógica o primeiro, por isto é interessante, neste caso vc dar um alias as colunas, como o colega italo.vendrameto comentou, pois vc tem uma duplicidade de nomes de colunas.

Criado 4 de julho de 2008
Ultima resposta 4 de jul. de 2008
Respostas 5
Participantes 5