Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialLuigi Cinque
1,548 PointsSQL (ORDER BY, WHERE)
We're using the library database again. 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.
I WROTE THIS CODE BUT IT SAYS IS MISSING WHERE.
SELECT * FROM books ORDERED BY genre ASC LIMIT 5;
2 Answers
Luigi Cinque
1,548 PointsYes is order by. How can I restrict it?
Matt Paden
2,718 PointsI updated the answer to explain how a WHERE clause helps here and where to include it. Does that make sense?
Luigi Cinque
1,548 PointsI really much appreciate your time and effort in answering my question, you couldn't be more specif. Thanks really much, Mr Paden.
Matt Paden
2,718 PointsMatt Paden
2,718 PointsThat's a valid SQL statement (assuming you mean "ORDER BY" instead of "ORDERED BY"), but in the correct response to the prompt, you'll need to restrict your results to Fantasy books.
WHERE clauses let you pick which rows you want in your result. You define a condition (WHERE genre=βFantasyβ) and only rows that meet this condition get shown.
So adding a where clause to your original query:
SELECT * FROM books WHERE genre = "Fantasy" ORDER BY genre ASC LIMIT 5
In the final answer to the prompt, youβll want to adjust the ORDER BY statement so itβs βordered by the year released. Oldest first.β