这是我的查询
SELECT s1.* FROM tbl s1
JOIN (
SELECT ID, MIN(Overall_Rank) AS rank, MAX(Service_Duration) AS duration FROM tbl
)
AS s2 ON s1.ID = s2.ID AND s1.Overall_Rank= s2.rank AND s1.Service_Duration=s2.duration
我想要做的是得到具有Total_Rank最小值的行,并且其中有Max.value of Service_Duration 。谁能告诉我上面的查询有什么问题?
答案 0 :(得分:0)
不要真正得到你想要的东西。
这个怎么样?
SELECT * 从tbl WHERE Overall_Rank =(SELECT MIN(Overall_Rank)FROM tbl) AND Service_Duration =(SELECT MAX(Service_Duration)FROM tbl)
答案 1 :(得分:0)
这个怎么样?
SELECT * FROM tbl WHERE Service_Duration = (
SELECT MAX(Service_Duration) FROM tbl WHERE Overall_Rank = (SELECT MIN(Overall_Rank) FROM tbl))
假设我已正确理解您,您有兴趣返回Overall_Rank
列中具有最大值的最低Service_Duration
行。
编辑: 为了加快速度,您可以尝试在Service_Duration和Overall_Rank上创建索引,就像有人建议的那样。
我不知道哪种代码执行这个SQL查询(Java,PHP?),但也许在两个单独的查询中更容易实现?我不是MySQL领域的专家,但我认为在子查询中执行子查询并不是最佳选择。