繁体   English   中英

mysql按desc命令获取最新记录,不带子查询

[英]mysql get latest records by order by desc without subquery

我正在尝试通过以下查询获取结果,但大约需要2分钟才能检索到

SELECT * 
FROM customer e 
WHERE e.id=324 
AND e.g_id IN('x133fv','be6544','e992170','93611c') 
and e.enrol_id = 
(
 select e1.enrol_id 
 from customer e1 
 WHERE e1.id=324 
 AND e1.g_id=e.g_id 
 ORDER BY update_time DESC, posted_time DESC, enrol_id DESC 
 LIMIT 1
)

我在(g_id,id)上有索引

还有其他方法可以通过JOIN获得结果吗?

这是您的查询:

SELECT *
FROM customer e
WHERE e.id = 324 AND
      e.g_id IN ('x133fv','be6544','e992170','93611c') and
      e.enrol_id = (select e1.enrol_id
                    from customer e1
                    WHERE e1.id=324 AND e1.g_id=e.g_id
                    ORDER BY update_time DESC, posted_time DESC, enrol_id DESC
                    LIMIT 1
                   )

您可以使用索引来提高性能。 我建议: customer(id, g_id, update_time, posted_time, enrol_id)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM