Is it better to separate a big query into multiple smaller queries?
I am going to disagree on large and complicated queries with datagod here.  I see these only as problems if they are disorganized.  Performance-wise, these are almost always better because the planner has much more freedom in how to go about retrieving the information.  However, large queries do need to be written with maintainability in mind.  In general, I have found that simple, well-structured SQL to be easy to debug even when a single query goes on for 200+ lines.  This is because usually you have a pretty good idea of what kind of problem you are dealing with so there are only a few areas in the query that you have to check.

The maintenance problems, IME, come in when the structure of SQL breaks down.  Long, complex queries in subselects impairs readability and troubleshooting, as do inline views, and both of these should be avoided in long queries.  Instead, use VIEWs if you can (note if you are on MySQL, views do not perform all that well, but on most other db's they do), and use common table expressions where those don't work (MySQL doesn't support these btw).

Long complex queries work pretty well both from a maintainability and performance case where you keep your where clauses simple, and where you do as much as you can with joins instead of subselects.  The goal is to make it so that "records aren't showing up" gives you a few very specific places in the query to check (is it getting dropped in a join or filtered out in a where clause?) and so the maintenance team can actually maintain things.

Regarding scalability, keep in mind that the more flexibility the planner has, that's a good thing too....

Edit:  You mention this is MySQL, so views are unlikely to perform that well and CTE's are out of the question.   Additionally the example given is not particularly long or complex so that's no problem.