Get properties from all children in a recursive SQL structure
There is more than one way to represent a tree and they have different pro's and con's. 

In your case you may want to look at modified preorder tree traveral. You can read more about the algorithm here for example.

By giving all nodes a proper left and right value pair you can load an entire subtree in one query for example, which would improve your situation a lot.