Fórum Consulta SQL #382936
05/08/2010
0
Olá pessoal,
uso delphi 2010 e firebird. Como acesso a dados uso o IBX.
Tenho a seguinte estrutura de tabelas:
[Livros]
idLivro
tituloLivro
[Pessoas]
idPessoa
nomePessoa
[PessoasLivros]
idPessoa
idLivro
Minha dificuldade esta no seguinte item:
Preciso retornar todos os livros. E os que estiverem emprestados preciso do nome da pessoa.
Select l.titulo p.nome from Livros l inner join PessoasLivros pl on l.idLivro = pl.idLivro innere join Pessoas p on p.idPessoa = pl.idPessoa
Com esse SQL tenho o nome dos livros e das pessoas que tem livros emprestados. Porém preciso além dessa informação do nome dos livros que não estão sendo emprestados no momento.
Seria algo do tipo:
O Rei Arthur Pedro Paulo
Crônicas de Monterio Lobato Mário de Souza
Histórias de Dona Benta null (não esta emprestado)
e assim por diante.
uso delphi 2010 e firebird. Como acesso a dados uso o IBX.
Tenho a seguinte estrutura de tabelas:
[Livros]
idLivro
tituloLivro
[Pessoas]
idPessoa
nomePessoa
[PessoasLivros]
idPessoa
idLivro
Minha dificuldade esta no seguinte item:
Preciso retornar todos os livros. E os que estiverem emprestados preciso do nome da pessoa.
Select l.titulo p.nome from Livros l inner join PessoasLivros pl on l.idLivro = pl.idLivro innere join Pessoas p on p.idPessoa = pl.idPessoa
Com esse SQL tenho o nome dos livros e das pessoas que tem livros emprestados. Porém preciso além dessa informação do nome dos livros que não estão sendo emprestados no momento.
Seria algo do tipo:
O Rei Arthur Pedro Paulo
Crônicas de Monterio Lobato Mário de Souza
Histórias de Dona Benta null (não esta emprestado)
e assim por diante.
Carlos Phelippe
Curtir tópico
+ 0
Responder
Posts
05/08/2010
Emerson Nascimento
select
l.tituloLivro,
coalesce(p.nomePessoa, 'Disponível') Emprestado
from
Livros l
left join PessoasLivros pl on
pl.idLivro = l.idLivro
left join Pessoas p on
p.idPessoa = pl.idPessoa
l.tituloLivro,
coalesce(p.nomePessoa, 'Disponível') Emprestado
from
Livros l
left join PessoasLivros pl on
pl.idLivro = l.idLivro
left join Pessoas p on
p.idPessoa = pl.idPessoa
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)