我一直在努力解决这个问题。我有一个需要审核的条目表。我将条目的审核历史存储在另一个历史记录中。可以使用不同的值多次审核条目。
最后,我需要查找条目的最新审核状态以及原始条目详细信息。
表1:
b_response_id | b_response_data | b_response_author | etc.
审核历史记录存储在另一个表中:
audit_id | b_response_id | audit_status
我可以使用此子查询来获取每个条目的最新审核状态,并且它运行良好且快速没问题:
SELECT * FROM audit_history b
INNER JOIN
(
SELECT b_response_id, MAX(audit_id) max_id
FROM audit_history
GROUP BY b_response_id
) c ON c.b_response_id=b.b_response_id AND c.max_id=b.audit_id`
但是当我尝试将其加入原始条目表时,它只给我一个具有审计历史记录的条目。我需要它来显示尚未审核的条目。
SELECT a.*, b.*
FROM entries a
LEFT JOIN audit_history b
ON a.b_response_id = b.b_response_id
INNER JOIN
(
SELECT b_response_id, MAX(audit_id) max_id
FROM audit_history
GROUP BY b_response_id
) c ON c.b_response_id=b.b_response_id AND c.max_id=b.audit_id
如果我将INNER JOIN
更改为LEFT JOIN
则需要永久。我做错了什么?