MySQL - 左连接到子查询非常慢

时间:2018-04-03 16:04:43

标签: mysql left-join

我一直在努力解决这个问题。我有一个需要审核的条目表。我将条目的审核历史存储在另一个历史记录中。可以使用不同的值多次审核条目。

最后,我需要查找条目的最新审核状态以及原始条目详细信息。

表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则需要永久。我做错了什么?

0 个答案:

没有答案