あなたの翻訳の問題は、where
の正しいテーブルで条件を使用していることだと思います on
の代わりに句
訳してみたところ、以下のようになりました:
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')
ただし、サンプル データ、目的の結果、または完全なクエリを提供していないため、私が正しいかどうかを判断するのは困難です。