Usuário com melhor resposta
inner join

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_idporem continua dando erro, como posso fazer ?
Abraços
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
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
-
- 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
-
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
-
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_livroObrigado pela ajuda!
Abraços
-
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.