2014-12-02 131 views
-1

我正在尋找一種方法來顯示來自不同組的單行。 我的意思是,如果我有例如表所示:特定數據庫搜索

id|name|groupID 
1 |....| 1 
2 |....| 1 
3 |....| 1 
4 |....| 2 
5 |....| 2 
6 |....| 3 
7 |....| 4 
8 |....| 4 
9 |....| 4 

它將從每個組ID,一個用於組ID = 1時,一個組ID = 2只顯示一個行等等。 非常感謝您的幫助。

+1

使用group by by SELECT * FROM my table GROUP BY goupID' – 2014-12-02 16:41:37

回答

0

嘗試這種情況:

select * 
    from tableName 
    where id in (
    select max(id) from tableName group by groupID 
) 
+0

不要這樣做,不可能在同一組中有2個項目 – 2014-12-02 16:42:57

+0

他說:「我正在尋找一種方法來顯示單行不同的組「 – MiiinimalLogic 2014-12-02 16:43:33

+1

他不說'我想在我的數據庫中存儲唯一的groupId' – 2014-12-02 16:44:07

0

Group by doc

的GROUP BY語句中結合使用與聚合函數組的結果集由一個或多個列。

SQL:

SELECT * FROM my table GROUP BY goupID 

返回應該是:

id|name|groupID 
1 |....| 1 
4 |....| 2 
6 |....| 3 
7 |....| 4 

Distinct doc

在表中,一列可能包含許多重複值;有時你只想列出不同的(不同的)值。

SQL:

SELECT DISTINCT(goupID) FROM my table 

回報率應會:

groupID 
1 
2 
3 
4 

希望能夠幫助您。

+0

所有最後的ID這不會工作,因爲它缺乏一個聚合函數,如上述報價中所述。你可以添加'MIN(id)',但你仍然無法使用'*'。 – 2014-12-02 16:57:22

+0

在MySQL中,查詢是有效的並且它運行,但既不在GROUP BY子句中也不用於聚合函數的列的值不可預測。它也可以爲'id'返回2,5,6和9。但是,請求是從每個組獲取單個行,但它沒有指定哪一行,因此此查詢足夠滿足此目的。 – axiac 2014-12-02 16:59:36

+0

@RenéHoffmann這個sql工作,測試一下。 – 2014-12-02 17:00:29