0% found this document useful (0 votes)
4 views4 pages

Library table using Sub Query

The document outlines the creation of three tables: Books, Borrowers, and Loans, for managing a library system. It includes various SQL subqueries to retrieve specific information, such as finding borrowed book titles by a borrower named 'John Doe' or identifying borrowers who have borrowed books from a particular publisher. Each subquery demonstrates how to filter and aggregate data based on different criteria related to books and borrowers.

Uploaded by

reynagraceglory
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views4 pages

Library table using Sub Query

The document outlines the creation of three tables: Books, Borrowers, and Loans, for managing a library system. It includes various SQL subqueries to retrieve specific information, such as finding borrowed book titles by a borrower named 'John Doe' or identifying borrowers who have borrowed books from a particular publisher. Each subquery demonstrates how to filter and aggregate data based on different criteria related to books and borrowers.

Uploaded by

reynagraceglory
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Library table using Sub Query

CREATE TABLE Books (BookID NUMERIC(10) , Title VARCHAR2(25), Author


VARCHAR2(25), Publisher VARCHAR2(25), Year NUMERIC(10));

CREATE TABLE Borrowers ( BorrowerID NUMERIC(10) , Name VARCHAR2(25),


Address VARCHAR2(25));

CREATE TABLE Loans ( LoanID NUMERIC(10) , BookID NUMERIC(10), BorrowerID


NUMERIC(10), LoanDate DATE, DueDate DATE, ReturnDate DATE);

Subqueries

1. *Find the titles of books that have been borrowed by a borrower named 'John Doe'*

SELECT Title FROM Books WHERE BookID IN ( SELECT BookID FROM Loans WHERE
BorrowerID IN ( SELECT BorrowerID FROM Borrowers WHERE Name = 'John Doe' ));

2. *Find the names of borrowers who have borrowed books published by 'ABCPublishers'*

SELECT Name FROM Borrowers WHERE BorrowerID IN ( SELECT BorrowerID FROM


Loans WHERE BookID IN (SELECT BookID FROM Books WHERE Publisher = 'ABC
Publishers'));

3. *Find the titles of books that have been borrowed for more than 30 days*

SELECT Title FROM Books WHERE BookID IN (SELECT BookID FROM Loans WHERE
DATEDIFF(ReturnDate, LoanDate) > 30);

4. *Find the names of borrowers who have borrowed more than 5 books*

SELECT Name FROM Borrowers WHERE BorrowerID IN ( SELECT BorrowerID FROM


Loans GROUP BY BorrowerID HAVING COUNT(BookID) > 5);

5. *Find the titles of books that have not been borrowed*

SELECT Title FROM Books WHERE BookID NOT IN ( SELECT BookID FROM Loans);

6. *Find the names of borrowers who have borrowed books published in the year 2010*

SELECT Name FROM Borrowers WHERE BorrowerID IN (SELECT BorrowerID


FROM Loans WHERE BookID IN ( SELECT BookID FROM Books WHERE Year = 2010));
7. *Find the titles of books that have been borrowed by borrowers from a specific address*

SELECT Title FROM Books WHERE BookID IN (SELECT BookID FROM Loans WHERE
BorrowerID IN (SELECT BorrowerID FROM Borrowers WHERE Address = '123 Main St'));

8. *Find the names of borrowers who have borrowed books with a specific author*

SELECT Name FROM Borrowers WHERE BorrowerID IN (SELECT BorrowerID FROM


Loans WHERE BookID IN ( SELECT BookID FROM Books WHERE Author = 'J.K. Rowling'
));

9. *Find the titles of books that have been borrowed for a specific duration*

SELECT Title FROM Books WHERE BookID IN (SELECT BookID FROM Loans
WHERE DATEDIFF(ReturnDate, LoanDate) = 14);

10. *Find the names of borrowers who have borrowed books from a specific publisher*

SELECT Name FROM Borrowers WHERE BorrowerID IN (SELECT BorrowerID


FROM Loans WHERE BookID IN ( SELECT BookID FROM Books WHERE Publisher =
'Penguin Books'));

11. *Find the titles of books that have been borrowed by borrowers who have borrowed
more than 3 books*

SELECT Title FROM Books WHERE BookID IN (SELECT BookID FROM Loans
WHERE BorrowerID IN (SELECT BorrowerID FROM Loans GROUP BY BorrowerID
HAVING COUNT(BookID) > 3));

12. *Find the names of borrowers who have borrowed books that have a specific keyword
in the title*

SELECT Name FROM Borrowers WHERE BorrowerID IN ( SELECT BorrowerID


FROM Loans WHERE BookID IN ( SELECT BookID FROM Books WHERE Title LIKE
'%keyword%' ));

13. *Find the titles of books that have been borrowed by borrowers who have borrowed
books from a specific department*

SELECT Title FROM Books WHERE BookID IN ( SELECT BookID FROM Loans
WHERE BorrowerID IN (SELECT BorrowerID FROM Borrowers WHERE Department =
'Computer Science'));
14. *Find the names of borrowers who have borrowed books that have a specific author
and publisher*

SELECT Name FROM Borrowers WHERE BorrowerID IN ( SELECT BorrowerID FROM


Loans WHERE BookID IN (SELECT BookID FROM Books WHERE Author = 'J.K. Rowling'
AND Publisher = 'Scholastic'));

15. *Find the titles of books that have been borrowed by borrowers who have borrowed
books for a specific duration*

SELECT Title FROM Books WHERE BookID IN ( SELECT BookID FROM Loans
WHERE DATEDIFF(ReturnDate, LoanDate) BETWEEN 7 AND 14);

16. *Find the names of borrowers who have borrowed books from a specific shelf*

SELECT Name FROM Borrowers WHERE BorrowerID IN (SELECT BorrowerID FROM


Loans WHERE BookID IN (SELECT BookID FROM Books WHERE Shelf = 'Fiction'));

17. *Find the titles of books that have been borrowed by borrowers who have borrowed
books with a specific ISBN*

SELECT Title FROM Books WHERE BookID IN (SELECT BookID FROM Loans WHERE
BorrowerID IN (SELECT BorrowerID FROM Loans WHERE BookID IN (SELECT BookID
FROM Books WHERE ISBN = '978-3-16-148410-0')));

18. *Find the names of borrowers who have borrowed books that have a specific number of
pages*

SELECT Name FROM Borrowers WHERE BorrowerID IN (SELECT BorrowerID FROM


Loans WHERE BookID IN (SELECT BookID FROM Books WHERE Pages = 300));

19. *Find the titles of books that have been borrowed by borrowers who have borrowed
books from a specific category*

SELECT Title FROM Books WHERE BookID IN (SELECT BookID FROM Loans WHERE
BorrowerID IN (SELECT BorrowerID FROM Borrowers WHERE Category = 'Student'));

20. *Find the names of borrowers who have borrowed books that have a specific
publication date*
SELECT Name FROM Borrowers WHERE BorrowerID IN (SELECT BorrowerID FROM
Loans WHERE BookID IN (SELECT BookID FROM Books WHERE PublicationDate = '2010-
01-01'));

You might also like