The way I've seen, is there are two ways to kind of use OQL. 1) Using references explicitly (your 'join tables' Mendix creates) which is probably the best.
Example
SELECT COUNT(*)
FROM Loan.ResponsibleParty rp
INNER JOIN rp/Loan.LoanHeader_Responsible_Party/Loan.LoanFile lf
INNER JOIN lf/Loan.Bucket_LoanHeader/Loan.Bucket lb
The other way kind of mirrors Microsoft's T-SQL where you specify how to join (just use TSQL syntax).
Also, there's some good documentation here: https://world.mendix.com/pages/releaseview.action?pageId=11436153
EDIT: The multiplicity in my example is rp (*) -> (1) lf (*) -> (1) lb
It seems to work, however no data found but that is probably my mistake. No not probably but surely. Thanx!