none
Inner join RRS feed

  • 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?

    sábado, 20 de abril de 2013 21:31

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!

    terça-feira, 23 de abril de 2013 16:55

Todas as Respostas

  • Deleted
    domingo, 21 de abril de 2013 00:16
  • 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

    segunda-feira, 22 de abril de 2013 00:31
  • 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!

    terça-feira, 23 de abril de 2013 16:55