Usuário com melhor resposta
Inner join

Pergunta
-
Boa noite pessoal!
Bom, estou aprendendo a fazer inner join, mas estou com uma dúvida...
no meu banco existem as tabelas "Cliente", "Reserva" e fazendo o inner join o código abaixo retorna apenas o nome de um cliente.
SELECT C.NOME_CLIENTE, R.DATA_RESERVA FROM CLIENTE C INNER JOIN RESERVA R ON C.ID_CLIENTE = R.CLIENTE_ID_CLIENTE ORDER BY NOME_CLIENTE;
Como o código deve ser para aparecer o nome de todos os clientes?
Respostas
-
icacau,
Não sei se eu entendi errado, para se você quiser retornar todos os clientes, independentemente de ter uma reserva ou não, você não deve usar um inner join, mas um LEFT JOIN.
SELECT C.NOME_CLIENTE, R.DATA_RESERVA FROM CLIENTE C LEFT JOIN RESERVA R ON C.ID_CLIENTE = R.CLIENTE_ID_CLIENTE ORDER BY NOME_CLIENTE;
Veja se é isso o que você precisa e, qualquer dúvida, só falar.
[]'s!
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 25 de abril de 2013 18:20
- Marcado como Resposta Giovani Cr quarta-feira, 9 de outubro de 2013 18:34
Todas as Respostas
-
-
Icacau, boa noite.
A clausula "inner join" retornará apenas os dados em comum entre as duas tabelas, ou seja, se vc tiver RESERVAS de apenas um cliente, esta consulta retornará da forma como vc está visualizando. Agora se existem mais de um RESERVA para clientes diferentes, é necessário rever a sua chave de cruzamento, pois possivelmente os campos que vc está usando na clausula ON não está batendo.
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 25 de abril de 2013 18:20
-
icacau,
Não sei se eu entendi errado, para se você quiser retornar todos os clientes, independentemente de ter uma reserva ou não, você não deve usar um inner join, mas um LEFT JOIN.
SELECT C.NOME_CLIENTE, R.DATA_RESERVA FROM CLIENTE C LEFT JOIN RESERVA R ON C.ID_CLIENTE = R.CLIENTE_ID_CLIENTE ORDER BY NOME_CLIENTE;
Veja se é isso o que você precisa e, qualquer dúvida, só falar.
[]'s!
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 25 de abril de 2013 18:20
- Marcado como Resposta Giovani Cr quarta-feira, 9 de outubro de 2013 18:34