2012-10-12 97 views
0

我的最佳方式表所示:MySQL的 - 什麼是執行此操作

| ID | value | 
| 0 | 5 | 
| 1 | 2 | 
| 0 | 1 | 
| 1 | 6 | 
| 2 | 3 | 
| 2 | 8 | 
| 1 | 2 | 
| 0 | 1 | 
| 2 | 4 | 

我想對我的結果只有一行的id其中值是所有列的分,類似於:

SELECT DISTINCT * FROM table WHERE MIN(table.value) = table.value 

我該如何解決?謝謝!

編輯:

我所需的輸出是:

| ID | value | 
| 0 | 1 | -> is the min of all the rows with id = 0 
| 1 | 2 | 
| 2 | 3 | 

編輯2:

喜歡的東西:

SELECT DISTINCT * 
FROM tableName AS A 
WHERE value = (SELECT MIN(value) From tableName AS B WHERE A.ID=B.ID) 

但tablename是(SELECT * FROM ...........) ..我怎麼能執行?

回答

1
SELECT DISTINCT ID, Value 
FROM tableName 
WHERE value = (SELECT MIN(value) From tableName) 

SQLFiddle Demo

後續問題,如果有不同的ID相同的最低value會發生什麼情況,會顯示什麼記錄?

+0

對不起的人。在這種方式給了我只有一排與服用,在所有具有最小的id值table ..我需要爲每個id的id組的最小值..類似的東西.. id = 0 =>行= 3.採取編號= 0其中行=最小(行)。 id = 1 => row = 6. take id = 1 where row = min(row) – JackTurky

+0

我得到了,我很困惑這個'只有一行的id',其中value是所有列的最小值。我會更新答案。 –

+0

@JackTurky你可以在你的問題上發佈你想要的輸出嗎? –

1

如何:

SELECT DISTINCT a.ID, a.value 
FROM tableName AS a 
WHERE a.value = (SELECT MIN(b.value) 
       FROM tableName AS b 
       WHERE a.id = b.id) 
+0

如果我的tableName是另一個子查詢的結果? – JackTurky

+0

請參閱edit2 pls :) – JackTurky

+0

只需用'(select from ...)替換tableName並將其與包含的缺少 – xception

0

這是你想要的

select id,min(value) from tableName group by id 
+0

pls ....請參閱edit2 .. – JackTurky

相關問題