这个查询存在一个问题,就是将子查询放在了SELECT语句中,这会导致子查询在每行结果中都被执行一次,影响查询性能。

为了优化这个查询,可以使用JOIN语句来避免子查询的执行次数。

以下是优化后的查询语句:

SELECT s1.*, s2.min_ticket_price FROM slice s1 JOIN ( SELECT cid, fid, MIN(ticket_price) as min_ticket_price FROM slice WHERE cid='1' AND fid='1' GROUP BY cid, fid ) s2 ON s1.cid = s2.cid AND s1.fid = s2.fid

在优化后的查询中,首先使用子查询得到最小的ticket_price,然后将其与原始表进行JOIN操作,从而避免了重复执行子查询的问题。

这是单表查询 SELECT MINSELECT ticket_price FROM slice WHERE cid=1 AND fid=1 FROM slice WHERE cid=1 AND fid=1 有什么问题 该怎么优化

原文地址: http://www.cveoy.top/t/topic/iFeE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录