sql多层嵌套查询优化_sql嵌套查询返回多个字段

sql多层嵌套查询优化_sql嵌套查询返回多个字段1 嵌套查询优化 优化前 SELECT q id q title q question q person name q department name r response r create time response time FROM tb ent question q LEFT JOIN tb ent response r ON q

1.嵌套查询优化
优化前

SELECT
q.id,
q.title,
q.question,
q.person_name,
q.department_name,
r.response,
r.create_time response_time
FROM
tb_ent_question q
LEFT JOIN tb_ent_response r ON q.id = r.question_id
WHERE
r.create_time = (
SELECT
MAX(create_time)
FROM
tb_ent_response r1
WHERE
r1.question_id = q.id
)
OR r.create_time IS NULL
ORDER BY
q.create_time DESC

优化后

SELECT
q.id,
q.title,
q.question,
q.person_name,
q.department_name,
r.response,
r.create_time response_time
FROM
tb_ent_question q
LEFT JOIN tb_ent_response r ON q.id = r.question_id,
(
SELECT
r1.id,
r1.question_id,
max(r1.create_time) AS create_time
FROM
tb_ent_response r1
GROUP BY
id
) a
WHERE
(
a.id = r.id
OR (r.create_time IS NULL)
)
GROUP BY
q.id
ORDER BY
q.create_time DESC
编程小号
上一篇 2025-02-11 22:46
下一篇 2025-01-30 07:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/109896.html