2016-07-24 58 views
0

我想根據表x上的number列中存在的最大數來獲取一行中的id如何獲得MySQL中列的最大數量

例如: 我在x表內有以下記錄。

id  | number 
---------+--------- 
9  | 289  
10  | 100  
24  | 187  
54  | 345  

我想查詢通過找出該最大列number的是345idSELECT x.id ...)返回。

我該如何成功?

回答

1

請嘗試以下查詢:

解決方案#1:

SELECT 
x.* 
FROM x 
INNER JOIN 
(
    SELECT 
    MAX(number) AS max_number 
    FROM x 
) AS maxTable 
ON x.number = maxTable.max_number 

說明:

SELECT 
    MAX(number) AS max_number 
FROM x; 

結果:

maxTable:

max_number 
    345 

現在做出inner join你的表xmaxTable.max_numberx.number命名maxTable上表之間。

X表:

===================== 
    | id  | number | 
    ===================== 
    | 9  | 289  | 
    --------------------- 
    | 10  | 100  | 
    --------------------- 
    | 24  | 187  | 
    --------------------- 
    | 54  | 345  | 
    --------------------- 

因此,在最終輸出你會得到僅在其numbermaxTable.max_number的條目。

解決方案2:

您可以使用WHERE IN太做到這一點。

SELECT 
* 
FROM x 
WHERE x.number IN (SELECT MAX(number) FROM x) 
+0

這是正確的答案。感謝您的快速回復! – gkanellis

0

你爲什麼不這樣做,因爲:

select t.id 
from t 
order by number desc 
limit 1;