SELECT e.ID_USUARIO, u.NOME_COMPLETO USUARIO, e.ID_USUARIO_SOLICITANTE , us.NOME_COMPLETO USUARIO_SOLICITANTE, e.DATA_EMPRESTIMO DATA_EMPRESTIMO, e.DATA_DEVOLUCAO DATA_DEVOLUCAO,
e.STATUS STATUS, l.TITULO
FROM emprestimo e
INNER JOIN usuario u ON e.ID_USUARIO = u.ID
INNER JOIN usuario us ON e.ID_USUARIO_SOLICITANTE = us.ID
INNER JOIN livro l ON e.ID_LIVRO = l.ID
WHERE e.id = 1 OR l.TITULO = 'LIVRO TESTE'
ORDER BY e.DATA_EMPRESTIMO DESC;
-
remova os alias das tabelas:
SELECT emprestimo.ID_USUARIO, usuario.NOME_COMPLETO USUARIO, emprestimo.ID_USUARIO_SOLICITANTE , usuario_solicitante.NOME_COMPLETO USUARIO_SOLICITANTE, emprestimo.DATA_EMPRESTIMO DATA_EMPRESTIMO, emprestimo.DATA_DEVOLUCAO DATA_DEVOLUCAO, emprestimo.STATUS STATUS, livro.TITULO FROM emprestimo INNER JOIN usuario ON emprestimo.ID_USUARIO = usuario.ID INNER JOIN usuario AS usuario_solicitante ON emprestimo.ID_USUARIO_SOLICITANTE = usuario_solicitante.ID INNER JOIN livro ON emprestimo.ID_LIVRO = livro.ID WHERE emprestimo.id = 1 OR livro.TITULO = 'LIVRO TESTE' ORDER BY emprestimo.DATA_EMPRESTIMO DESC;
Importante: Quando for necessário, deixe ele o mais claro possível. Veja
usuario_solicitante
por exemplo. -
deixe uma linha por coluna:
SELECT emprestimo.ID_USUARIO, usuario.NOME_COMPLETO USUARIO, emprestimo.ID_USUARIO_SOLICITANTE , usuario_solicitante.NOME_COMPLETO USUARIO_SOLICITANTE, emprestimo.DATA_EMPRESTIMO DATA_EMPRESTIMO, emprestimo.DATA_DEVOLUCAO DATA_DEVOLUCAO, emprestimo.STATUS STATUS, livro.TITULO FROM emprestimo INNER JOIN usuario ON emprestimo.ID_USUARIO = usuario.ID INNER JOIN usuario AS usuario_solicitante ON emprestimo.ID_USUARIO_SOLICITANTE = usuario_solicitante.ID INNER JOIN livro ON emprestimo.ID_LIVRO = livro.ID WHERE emprestimo.id = 1 OR livro.TITULO = 'LIVRO TESTE' ORDER BY emprestimo.DATA_EMPRESTIMO DESC;
-
Ajuste a identação:
SELECT emprestimo.ID_USUARIO, usuario.NOME_COMPLETO USUARIO, emprestimo.ID_USUARIO_SOLICITANTE , usuario_solicitante.NOME_COMPLETO USUARIO_SOLICITANTE, emprestimo.DATA_EMPRESTIMO DATA_EMPRESTIMO, emprestimo.DATA_DEVOLUCAO DATA_DEVOLUCAO, emprestimo.STATUS STATUS, livro.TITULO FROM emprestimo INNER JOIN usuario ON emprestimo.ID_USUARIO = usuario.ID INNER JOIN usuario AS usuario_solicitante ON emprestimo.ID_USUARIO_SOLICITANTE = usuario_solicitante.ID INNER JOIN livro ON emprestimo.ID_LIVRO = livro.ID WHERE emprestimo.id = 1 OR livro.TITULO = 'LIVRO TESTE' ORDER BY emprestimo.DATA_EMPRESTIMO DESC;
Com a identação, cada linha parece pertencer a um bloco.
SELECT
,FROM
,WHERE
,ORDER BY
são os "identificadores". -
faça quebra de linha pros filtros do JOIN:
SELECT emprestimo.ID_USUARIO, usuario.NOME_COMPLETO USUARIO, emprestimo.ID_USUARIO_SOLICITANTE , usuario_solicitante.NOME_COMPLETO USUARIO_SOLICITANTE, emprestimo.DATA_EMPRESTIMO DATA_EMPRESTIMO, emprestimo.DATA_DEVOLUCAO DATA_DEVOLUCAO, emprestimo.STATUS STATUS, livro.TITULO FROM emprestimo INNER JOIN usuario ON emprestimo.ID_USUARIO = usuario.ID INNER JOIN usuario AS usuario_solicitante ON emprestimo.ID_USUARIO_SOLICITANTE = usuario_solicitante.ID INNER JOIN livro ON emprestimo.ID_LIVRO = livro.ID WHERE emprestimo.id = 1 OR livro.TITULO = 'LIVRO TESTE' ORDER BY emprestimo.DATA_EMPRESTIMO DESC;
-
Use a expressão
AS
pra declarar osALIAS
realmente necessários:SELECT emprestimo.ID_USUARIO, usuario.NOME_COMPLETO AS USUARIO, emprestimo.ID_USUARIO_SOLICITANTE , usuario_solicitante.NOME_COMPLETO AS USUARIO_SOLICITANTE, emprestimo.DATA_EMPRESTIMO, emprestimo.STATUS, emprestimo.DATA_DEVOLUCAO, livro.TITULO FROM emprestimo INNER JOIN usuario ON emprestimo.ID_USUARIO = usuario.ID INNER JOIN usuario AS usuario_solicitante ON emprestimo.ID_USUARIO_SOLICITANTE = usuario_solicitante.ID INNER JOIN livro ON emprestimo.ID_LIVRO = livro.ID WHERE emprestimo.id = 1 OR livro.TITULO = 'LIVRO TESTE' ORDER BY emprestimo.DATA_EMPRESTIMO DESC;
-
Deixe as instruções SQL em letras maiusculas e resto em minuscula
SELECT emprestimo.id_usuario, usuario.nome_completo AS usuario, emprestimo.id_usuario_solicitante, usuario_solicitante.nome_completo AS usuario_solicitante, emprestimo.data_emprestimo, emprestimo.status, emprestimo.data_devolucao, livro.titulo FROM emprestimo INNER JOIN usuario ON emprestimo.id_usuario = usuario.id INNER JOIN usuario AS usuario_solicitante ON emprestimo.id_usuario_solicitante = usuario_solicitante.id INNER JOIN livro ON emprestimo.id_livro = livro.id WHERE emprestimo.id = 1 OR livro.titulo = 'LIVRO TESTE' ORDER BY emprestimo.data_emprestimo DESC;
Recomendo usar o pgFormatter do Darold: http://sqlformat.darold.net/