none
inner join RRS feed

  • Pergunta

  • Oi, estou usando o inner join e sql server pela primeira vez,gostaria de saber como usar mais de inner joim

    estou fazendo da seguinte maneira: 

    select c.nome,l.nome,cli.data_entrega,cl.data_devolução
    from Clientes_Livros cl 
    inner join Cliente c on cl.cliente_id=c.cliente_id 
    inner join  Livro l on cl.livro_id=l.livro_id

    porem continua dando erro, como posso fazer ? 

    Abraços

    quinta-feira, 20 de fevereiro de 2014 11:59

Respostas

  • Olá Maria,

    Você pode utilizar uma sub query para o primeiro inner join e depois fazer o segundo inner join com esta sub query... ficaria algo assim (Q1 é o alias que defini para a subquery):

    select Q1.nome, l.nome, Q1.data_entrega. Q1.data_devolução 
    from 
    	(select c.nome,cli.data_entrega,cl.data_devolução, cl.livro
    		from Clientes_Livros cl 
    		inner join Cliente c on cl.cliente_id=c.cliente_id) Q1 
    inner join  Livro l on Q1.livro_id=l.livro_id

    Verifica aí...


    Fabio Rosa.

    • Marcado como Resposta Maria_15 sexta-feira, 21 de fevereiro de 2014 11:48
    quinta-feira, 20 de fevereiro de 2014 12:10

Todas as Respostas

  • Olá Maria,

    Você pode utilizar uma sub query para o primeiro inner join e depois fazer o segundo inner join com esta sub query... ficaria algo assim (Q1 é o alias que defini para a subquery):

    select Q1.nome, l.nome, Q1.data_entrega. Q1.data_devolução 
    from 
    	(select c.nome,cli.data_entrega,cl.data_devolução, cl.livro
    		from Clientes_Livros cl 
    		inner join Cliente c on cl.cliente_id=c.cliente_id) Q1 
    inner join  Livro l on Q1.livro_id=l.livro_id

    Verifica aí...


    Fabio Rosa.

    • Marcado como Resposta Maria_15 sexta-feira, 21 de fevereiro de 2014 11:48
    quinta-feira, 20 de fevereiro de 2014 12:10
    1. Oi Fábio, tentei a sua sugestão porém persiste o erro:

    Msg 207, Level 16, State 1, Line 3
    Invalid column name 'livro'.
    Msg 207, Level 16, State 1, Line 6
    Invalid column name 'id_livro'.

    - Já verifiquei o nome das colunas e arrumei todos, mas ele ainda não consegue encontrar o id_livro


    • Editado Maria_15 quinta-feira, 20 de fevereiro de 2014 12:20
    quinta-feira, 20 de fevereiro de 2014 12:20
  • Bom dia,

    Maria, qual mensagem de erro está sendo exibida?

    Aparentemente a sintaxe está correta, o único problema que encontrei, e que talvez tenha sido um erro de digitação, está no Alias da coluna data_entrega (está cli.data_entrega, desconfio que o correto seja cl.data_entrega).

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 20 de fevereiro de 2014 12:20
  • Fábio, consegui resolver da seguinte forma:

    select c.nome,l.nome,cl.data_entrega,cl.data_devolução
    from Clientes_Livros cl 
    inner join Cliente c on cl.cliente_id=c.cliente_id 
    inner join  Livro l on cl.id_livro=l.id_livro

    Obrigado pela ajuda!

    Abraços

    quinta-feira, 20 de fevereiro de 2014 12:25
  • Olá Maria,

    Sim... no comando que te sugeri eu acabei errando a digitação da coluna cl.livro na subquery, que deveria ser cl.livro_id... mas pelo que percebi o nome das colunas estava errados então... deveriam ser id_livro e não livro_id não é? Mas que bom que resolveu!

    Att,


    Fabio Rosa.

    quinta-feira, 20 de fevereiro de 2014 12:34