我有以下查询,想知道是否可以用更好的方式重写?
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与主查询中的过滤器相同。
最佳答案
您可以使用:
SELECT COL1, COL2,MAX(COL3) as mx FROM TABLE1 WHERE ID = 1
and COL4 = 1415 having mx=MAX(COL3);
这将避免额外的子查询。
关于mysql - 有没有优化/更好的方法来编写这个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42129601/