他の投稿をいくつか読みましたが、私の質問に完全に回答するものはありませんでした。
次の選択を生成することができました:
SELECT regions.id, regions.name, auditoria_status from regions
LEFT OUTER JOIN regions regions_regions ON regions_regions.id = regions.parent_id
JOIN(
SELECT auditoria.entidade_id, auditoria.entidade_tipo, MAX(auditoria.status) AS auditoria_status
from auditoria GROUP BY auditoria.entidade_id, auditoria.entidade_tipo
) AS a
ON a.entidade_id = regions.id AND a.entidade_tipo = 'Terceiro' ORDER BY regions.id
これにより、すべての地域が正しく一覧表示されます。しかし、auditoria_status によって、auditoria.status の最大値が得られることを期待していました。
リージョン レコードの 1 つには、オーディトリアム テーブルに 3 つのエントリがあります。1 つはステータス 0、もう 1 つはステータス 1、3 番目はステータス 2 です。このリージョン ID を取得することを期待していました。これは名前であり、auditoria_status であるため 2 ですが、0 が返されます。
私の目標は、すべてのリージョンを (繰り返しなしで) リストすることですが、そのリージョンのテーブル オーディトリアムの最大ステータスのみを表示します。
編集
わかりました、この SQL は実際に機能します。ここのダミーの人は、「Terceiro」ではなく「Region」であるべき entidade_tipo 条件を間違って入力しました。だから、それは動作します。