I'm sure, there are allready some related posts at the forums.
I think, what you are looking for, is the joins-field.
If you have a field, for example, with resource_id and your schema has an aggregate like that:
<aggregate alias="Resource" class="modResource" local="resource_id" foreign="id" cardinality="one" owner="foreign" />
than its enough to have this
joins:
you will have the Resource-fields availiable in your grid,with names like, for example:
you can join to multiple tables with
[{"alias":"Resource"},{"alias":"Creator"}]
and also to tables, where no aggregate is defined with:
[{"alias":"Resource"},{"alias":"Creator"},{"alias":"Profile","classname":"modUserProfile","on":"Profile.internalKey=Creator.id"}]
there is are additional attribute 'type' , which an be inner or right for inner or right-joins.
and 'joinfields', if you don't need to fetch all of the fields.
you can use the same json to join tables with migxLoopCollection in its &joins - property for joined frontend-listings