x
create table books
(
id int,
title varchar(250),
year int,
author varchar(250)
);
create table reviewers
(
id int,
name varchar(250)
);
create table ratings
(
reviewer_id int,
book_id int,
rating int,
rating_date date
);
Select titles of all books without any rating
Now so far I have this
SELECT *
FROM Books
INNER JOIN Book.ID ON Reviewer.ID
WHERE Reviews.review = 'NULL'
Advertisement
Answer
In your case the Ratings
table serves as a table connecting ´Books´ and ´Reviewers´.
So to check if there are no ratings you can simply:
SELECT b.*
FROM books b
WHERE NOT EXISTS (SELECT book_id FROM ratings r WHERE r.book_id = b.id)
Meaning that this is showing all the books that do not have any rating. PS: You don’t need INNER JOINs, since you don’t need any information from the rating and reviewers table (since there is none).