CREATE TABLE Autores (
    AutorID INT AUTO_INCREMENT PRIMARY KEY,
    Nome VARCHAR(100) NOT NULL
);

CREATE TABLE Livros (
    LivroID INT AUTO_INCREMENT PRIMARY KEY,
    Titulo VARCHAR(100) NOT NULL,
    AutorID INT,
    AnoPublicacao INT,
    FOREIGN KEY (AutorID) REFERENCES Autores(AutorID)
);

CREATE TABLE Usuarios (
    UsuarioID INT AUTO_INCREMENT PRIMARY KEY,
    Nome VARCHAR(100) NOT NULL,
    Email VARCHAR(100) UNIQUE NOT NULL
);

CREATE TABLE Emprestimos (
    EmprestimoID INT AUTO_INCREMENT PRIMARY KEY,
    UsuarioID INT,
    LivroID INT,
    DataEmprestimo DATE,
    DataDevolucao DATE,
    FOREIGN KEY (UsuarioID) REFERENCES Usuarios(UsuarioID),
    FOREIGN KEY (LivroID) REFERENCES Livros(LivroID)
);

INSERT INTO Autores (Nome) VALUES
('Machado de Assis'),
('Clarice Lispector'),
('Jorge Amado');

INSERT INTO Livros (Titulo, AutorID, AnoPublicacao) VALUES
('Dom Casmurro', 1, 1899),
('Memórias Póstumas de Brás Cubas', 1, 1881),
('A Hora da Estrela', 2, 1977),
('Gabriela, Cravo e Canela', 3, 1958);

INSERT INTO Usuarios (NOME, Email) VALUES
('João Silva', 'joao.silva@example.com'),
('Maria Oliveira', 'maria.oliveira@example.com'),
('Pedro Souza', 'pedro.souza@example.com');

INSERT INTO Emprestimos (UsuarioID, LivroID, DataEmprestimo, DataDevolucao) VALUES
(1, 1, '2023-09-01', '2023-09-15'),
(2, 3, '2023-09-02', '2023-09-16'),
(3, 2, '2023-09-03', '2023-09-17'),
(1, 4, '2023-09-04', NULL); -- Empréstimo ainda não devolvido

-- SELECT Titulo AS Nome FROM Livros
-- UNION
-- SELECT Nome FROM Autores;

-- SELECT a.Nome FROM Autores a
-- JOIN Livros l ON a.AutorID = l.AutorID
-- JOIN Emprestimos e ON l.LivroID = e.LivroID
-- WHERE e.DataDevolucao IS NULL
-- INTERSECT
-- SELECT Nome FROM Autores; -- Para garantir que sejam autores

-- SELECT Titulo FROM Livros
-- WHERE LivroID NOT IN (SELECT DISTINCT LivroID FROM Emprestimos);

-- SELECT u.Nome AS Usuario, l.Titulo AS Livro
-- FROM Usuarios u, Livros l;

-- SELECT u.Nome AS Usuario, l.Titulo AS Livro
-- FROM Usuarios u, Livros l;

SELECT u.Nome FROM Usuarios u
LEFT JOIN Emprestimos e ON u.UsuarioID = e.UsuarioID
WHERE e.EmprestimoID IS NULL;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: