Databases Reporting with SQL Ordering, Limiting and Paging Results Limiting Results

Limiting data with SQL

Hi, here is the question:

There's a books table. There's a title, author, genre and first_published column. Write a query to obtain the first 5 books in the Fantasy genre ordered by the year released. Oldest first. Select all columns.

My answer: SELECT * FROM books ORDER BY genre = "Fantasy" WHERE first_published ASC LIMIT 5;

I am getting this incorrect can someone explain what I am doing wrong please

2 Answers

First "Fantasy" should be in single quotes 'Fantasy' for the syntax error. The Oldest first should be ordered DESC

SELECT * FROM books WHERE genre = 'Fantasy' ORDER BY first_published DESC LIMIT 5;

David Perkins
David Perkins
9,607 Points

Almost... You just need to switch the WHERE with the ORDER BY and that should sort it.

SELECT
  *
FROM
  books
WHERE
  genre IN ("Fantasy")
ORDER BY
  first_published ASC
LIMIT
  5;