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%}