我已經閱讀了一些其他文章,但是他們都不會完全迴應我的問題。在SQL上引入MAX JOIN
我設法生成以下選擇:
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的最大價值。
其中一個區域記錄在auditoria表中有3個條目。一個狀態爲0,一個狀態爲1,第三個狀態爲2.我期待得到這個區域ID,它的名稱和2,因爲它是auditoria_status,但給我0.
我的目標是列出所有區域沒有重複),但將只表禮堂的最大狀態爲區域
編輯
好吧,這SQL實際工作中,僞傢伙在這裏沒有正確輸入entidade_tipo條件應該是「區」而不是'Terceiro'。所以,它的工作。
,你卻加入你的子查詢,你沒」實際上是由它來過濾。 – jdotjdot
當你用'max(auditoria.status)'運行子查詢時,結果如何? 「地區」表的表結構是什麼? – Taryn