That depends on how you are handling sessions. I believe the default for PHP is to create little files in the tmp directory on your server. In high-traffic situations this can become a liability because the server's disk drive might be running back and forth reading little files.
On the other hand, your query is 'complicated' so putting it together might chew up a bunch of CPU time (and the queries might be gnarly too).
Are you talking about caching the sql or the results of the query?