It is fine to run it as two separate statements, and is actually better that way.

The reason for this is that you are presumably getting different amounts of rows from each query - the first returns one row (including "Instructions", which I guess is large), and the second returns multiple rows.

If you merge them, you will get all of the data for the first query repeated in every row, along with the data from the second query. This extra data wastes memory and reduces speed - as well as increasing network traffic if your code/database are on different computers.

The only time it might be worthwhile merging them is if the data returned by the first query is small, and/or there are only 1 or 2 rows returned by the second query. Unless you expect this to be the usual case, I wouldn't recommend doing it - what you have already is better for the majority of cases (perhaps even all).


One thing that I don't like about your current method tho is your use of sub-queries for Category etc, you should be using joins instead as you do for recipeingredient (if you have the choice, preferably specify "Inner"/"Left"/etc, to make it easier to read).