It's hard to imagine a question with any less detail than you provided, but I will try to answer in general terms.
If you are using a modern relational database management system (MySQL, etc) you should expect the database itself to best understand how to get information out of it. Therefore, you should submit almost all queries as single queries to the database and let it determine the optimal plan for getting the data back to you.
The database will perform best if you instruct it to index the fields used to join the data; if you find poor performance most database engines provide an option to have the engine explain the plan that was used to retrieve the information and based on that you can improve your indexing.
For frequent requests (like this one) it's best to encapsulate the query in the database as a VIEW (a stored query definition) and query the view rather than the tables directly.