I have table Races
with the rows ID
, Name
and TotalCP
. I SELECT MIN( TotalCP
) FROM Races
, but then I want to select the entire row which have the minimum value. How I can make that, in a single query ?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The general form for getting a whole row from an aggregated value is:
SELECT *
FROM Races
WHERE TotalCP = (SELECT MIN(TotalCP) FROM Races)
or
SELECT r.*
FROM
(
SELECT MIN(TotalCP) t
FROM Races
) m
INNER JOIN Races r ON m.t = r.TotalCP
However, in this case, since you're using MIN
, you can just sort and take the first row:
SELECT *
FROM Races
ORDER BY TotalCP
LIMIT 1
回答2:
Subquery is your bet,
SELECT * FROM Races where TotalCP = (SELECT MIN( TotalCP ) FROM Races)
回答3:
Select * from Races
where TotalCP = SELECT MIN( TotalCP ) FROM Races