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

sql多层嵌套查询优化_sql嵌套查询返回多个字段1.嵌套查询优化优化前SELECTq.id,q.title,q.question,q.person_name,q.department_name,r.response,r.create_timeresponse_timeFROMtb_ent_questionqLEFTJOINtb_ent_res

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169405.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • rc522读卡器电路_stm32烧录工具

    rc522读卡器电路_stm32烧录工具在写这篇文章之前有写过一篇有关于PN532的文章,RC522与PN532在使用上都可以用来读写我们之前用的M1的IC卡,并且两款芯片有着同样都是应用于13.56MHz的非接触式通信芯片等诸多共通之处,查阅网上资料对于两者的区别个人认为RC522属于RFID,而PN532属于NFC,在功能上PN532包含了RC522的所功能(个人愚见),并且对于大部分需要量产使用或者学生党来说…

    2026年1月28日
    7
  • Python之contextlib库及源码分析建议收藏

    AbstractContextManager(abc.ABC)上下文管理抽象类,子类必须实现__enter__(self)、__exit__(self)ContextDecorator(objec

    2021年12月19日
    47
  • The Building Blocks- Components of EA Part 2- Process, People, Network and Time

    The Building Blocks- Components of EA Part 2- Process, People, Network and Time

    2021年12月2日
    43
  • 循环队列的顺序存储结构Java

    循环队列的顺序存储结构Java循环队列的顺序存储结构在上次,我们讲到的是,队列的顺序存储结构也是由ArrayList实现的,从此就可以看出,在入队时候的时间复杂度为O(1),但是在出队时候的时间复杂度为O(n),这是因为,每次在出队后要将数组后面的有效元素前移一位。所以,这里就会用到循环队列,显然,这种队列也是顺序存储结构,在这个循环队列中也会去实现接口Queue。首先,我们要想到的是如何将一般的队列改变为循环队列。…

    2022年5月16日
    45
  • C语言关键字之voliate

    C语言关键字之voliateC语言关键字之voliatevoliate的作用是作为指令关键字,确保本条指令不会因为编译器的优化而省略,而且要求每次从内存中直接读取值当使用voliate声明变量值时,系统总是重新从它所在的内存读取数据,直接访问变量地址,而编译器对于访问该变量时也不再进行优化voliate关键字影响编译器的结果,用voliate声明的变量表示该变量随时可能发生变化(因为编译器优化时可能将其放入寄存器中),与…

    2022年5月6日
    70
  • Android传感器开发与智能设备案例实战_传感器总结及展望

    Android传感器开发与智能设备案例实战_传感器总结及展望转载自:http://blog.csdn.net/xiong_it/article/details/45917009本文中,笔者给大家分享一下Android中如何进行Android设备传感器开发。转载请注明作者xiong_it和链接:http://blog.csdn.net/xiong_it/article/details/45917009Android传感

    2022年9月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号