Dúvida com SELECT - lista em cada registro

Tenho estas tabelas:

CLIENTE:
id_cliente
nome
rg

TELEFONE:
id_telefone
id_cliente
telefone

Tem como efetuar um SELECT para retornar os cadastros dos clientes com todos os telefones correspondentes?

Por exemplo , dar um SELECT no cliente de código 1 e retornar isto:
cod_cliente - 1
nome do cliente 1
rg do clientes 1
lista de telefones do cliente 1

Claro que tem

Poderia me dar um exemplo?

Nesse caso pelo que deu para compreender, se tratando de uma lista de telefones de um cliente, você vai precisar de um array de telefones na classe cliente.

Isso mesmo, na classe Cliente tenho um List

Mas minha dúvida é de como fazer o SELECT para me retornar além dos dados do cliente, retornar também a lista de telefones referente a cada cliente…

Considerando que sua classe já tem uma lista de TELEFONE basta você preencher a mesma com um select onde id_cliente = cliente.id_cliente, sendo assim quando a classe for carregada você terá as informações agrupadas no objeto.

O problema é que não uso JPA nem Hibernate, estou usando o JDBC do java mesmo…

Dando um tiro no escuro acho que seria algo próximo disso.

String sql = "SELECT * FROM TELEFONE where id_cliente ='"+cliente.id_cliente+"'";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
 Telefone tel = new Telefone();
 tel.id_telefone = rs.getInt("id_telefone");
 tel.id_cliente = rs.getInt("id_cliente");
 tel.telefone = rs.getString("telefone");
 cliente.telefone.add(tel);
}
rs.close();

Mas ai, aconteceria de se o cliente tiver 3 telefones cadastrados, iria retornar 3 registros do mesmo cliente, queria que retornasse apenas um registro do cliente e a lista de telefone junta…

Dessa forma quem estaria agrupando o registro seria o Objeto(Não sei se o conceito de OO é claro para você) O Objeto Cliente seria único contendo todos os telefones do mesmo na sua lista de telefones.

obs: pode ser que não tenha ficado claro para meu entendimento sua necessidade.

Nas classe seu sei como ficaria, classe Cliente com uma lista de telefones dentro dela, mas minha dúvida é se existe alguma forma de em apenas um Select retornar um registro para cada cliente mas já com a lista de telefones de cada um…

Usa hibernate, mano!

Ah sim nesse caso o que conheço de SQL não pois você estaria agrupando N linha a Uma desconheço essa possibilidade, passo aos mestres do GUJ rsrs
Obs: o que conseguiria fazer seria algo próximo disso :

ID_CLIENTE | NOME | RG | ID TELEFONE | ID_CLIENTE | TELEFONE
1 | A | 1 | 1 | 1 |2122222221
1 | A | 1 | 2 | 1 |2122222222
1 | A | 1 | 3 | 1 |2122222223

@caio.augustoo2016, o cara está com dúvida de fazer um select, que não é complicado, e vc fala pra ele usar o hibernate ? Ajuda né, o que mais tem hoje em dia, é a galera que mal conhece do mundo relacional e já vai para o hibernate e quebra a cara, é a mesma coisa de querer estudar spring/vraptor, sem antes passar por servlet, já que os mesmo usam isso por trás.
Jaja te falo @Rodrigo1895

@igomes Não tinha olhado por este “ponto de vista”. Correria total! Mas tem razão, Vlw!

1 curtida