Tôi nghĩ rằng vấn đề với bản dịch của bạn là bạn đang sử dụng các điều kiện trên các bảng bên phải trong where
thay vì trong on
mệnh đề.
Khi tôi cố gắng dịch nó, đây là bản dịch tôi đã có:
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')
Tuy nhiên, thật khó để biết liệu tôi có chính xác hay không vì bạn đã không cung cấp dữ liệu mẫu, kết quả mong muốn hoặc thậm chí là một truy vấn hoàn chỉnh.