我读过其他一些帖子,但没有一个能完全回答我的问题。
我设法生成以下选择:
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 的最大值。
其中一个区域记录在观众席表中有 3 个条目。一个状态为 0,一个状态为 1,第三个状态为 2。我希望得到这个区域 id,它的名称和 2,因为它是 auditia_status,但给了我 0。
我的目标是列出所有区域(不重复),但只为该区域带来表厅的最大状态
编辑
好的,这个 SQL 确实有效,这里的假人输入错误的 entidade_tipo 条件应该是“Region”而不是“Terceiro”。所以,它有效。