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.





Carlos Phelippe

Carlos Phelippe

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

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar