Actually scratch that, and ignore all the advice on this thread.
Stick with the multiple joins if it is working well enough.
You only need to rethink if it becomes a bottleneck. And then things like page caching which would eliminate queries the vast majority of the time, would give better results.
Well the original poster was in much the same position. Seemingly he’s solved his problem and yet told that he’s doing it wrong. If he hasn’t got a performance bottleneck with the code, then its fine, and little point exploring any suggestions here, imo.