I'd suggest using a repeater to get the main object you want to display, then create a custom transformation method or custom macro to perform the rest of your queries.  We do this scenario quite often.  Take a look at an ecommerce site.  There are 
/products/brands/collections/types/product-detail
If you want to display the Collection name for a given product detail, you can simply use a macro in your transformation to get that data like so:
{%CurrentDocument.Parent.Parent.DocumentName|(identity)GlobalAdministrator%}