是否有优化/更好的方式来编写此查询?

时间:2017-02-09 06:22:04

标签: mysql sql query-optimization

我有以下查询,想知道这是否可以更好地重写?

SELECT COL1, COL2 FROM TABLE1 WHERE ID = 1 and COL4 = 1415 AND COL3 IN 
(SELECT MAX(COL3) FROM TABLE1 WHERE PRI = ID = 1 and COL4 = 1415);

问题来自于子查询的where子句中的过滤器ID和Col4与主查询中的过滤器相同。

1 个答案:

答案 0 :(得分:0)

您可以使用:

    SELECT COL1, COL2,MAX(COL3) as mx FROM TABLE1 WHERE ID = 1 
     and COL4 = 1415  having  mx=MAX(COL3);

这将避免额外的子查询。