Je pense que le problème avec votre traduction est que vous utilisez des conditions sur les bonnes tables dans le where
clause au lieu de dans le on
clause.
Lorsque j'ai essayé de la traduire, voici la traduction que j'ai :
FROM counterparty cp
LEFT JOIN counterparty_alias ca1 ON cp.code = ca1.counterparty_code
AND ca1.alias = 'Party1'
LEFT JOIN counterparty_alias ca2 ON cp.code *= ca2.counterparty_code
AND ca2.alias = 'Party2'
LEFT JOIN party p ON cp.code = p.child_code
WHERE cp.category in ('CAT1','CAT2')
Cependant, il est difficile de savoir si j'ai raison puisque vous n'avez pas fourni d'exemples de données, de résultats souhaités ou même de requête complète.