我正在尋找一種方法來顯示來自不同組的單行。 我的意思是,如果我有例如表所示:特定數據庫搜索
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只顯示一個行等等。 非常感謝您的幫助。
我正在尋找一種方法來顯示來自不同組的單行。 我的意思是,如果我有例如表所示:特定數據庫搜索
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只顯示一個行等等。 非常感謝您的幫助。
嘗試這種情況:
select *
from tableName
where id in (
select max(id) from tableName group by groupID
)
不要這樣做,不可能在同一組中有2個項目 – 2014-12-02 16:42:57
他說:「我正在尋找一種方法來顯示單行不同的組「 – MiiinimalLogic 2014-12-02 16:43:33
他不說'我想在我的數據庫中存儲唯一的groupId' – 2014-12-02 16:44:07
的GROUP BY語句中結合使用與聚合函數組的結果集由一個或多個列。
SQL:
SELECT * FROM my table GROUP BY goupID
返回應該是:
id|name|groupID
1 |....| 1
4 |....| 2
6 |....| 3
7 |....| 4
在表中,一列可能包含許多重複值;有時你只想列出不同的(不同的)值。
SQL:
SELECT DISTINCT(goupID) FROM my table
回報率應會:
groupID
1
2
3
4
希望能夠幫助您。
所有最後的ID這不會工作,因爲它缺乏一個聚合函數,如上述報價中所述。你可以添加'MIN(id)',但你仍然無法使用'*'。 – 2014-12-02 16:57:22
在MySQL中,查詢是有效的並且它運行,但既不在GROUP BY子句中也不用於聚合函數的列的值不可預測。它也可以爲'id'返回2,5,6和9。但是,請求是從每個組獲取單個行,但它沒有指定哪一行,因此此查詢足夠滿足此目的。 – axiac 2014-12-02 16:59:36
@RenéHoffmann這個sql工作,測試一下。 – 2014-12-02 17:00:29
使用group by by SELECT * FROM my table GROUP BY goupID' – 2014-12-02 16:41:37