2013-03-18 38 views
0

我想從查詢結果中選擇不應該重複其他列的值。關於列B選擇組列A不重複

enter image description here

在這些截圖中,我想只選擇一次爲每個用戶ID function柱和OBJECT_ID爲concated值。對於例如,在這個截圖,delete_portfolio_module被重複多次爲用戶ID 32782,所以我需要與MAX(id),timebox_id,USER_ID,功能,OBJECT_ID如下要把它只有一次,

id   |timebox_id|user_id|function        |object_id 
---------------------------------------------------------------------------------------- 
    3155  |4   |32799 |add_latest_activity_to_portfolio  |7410 
    3137  |4   |32797 |add_latest_activity_to_portfolio  |7408 
    3133  |4   |32796 |add_latest_activity_to_portfolio  |7406 
    3115  |2   |32782 |delete_portfolio_module    |7381,7382,...,7388,7389 
    . 
    . 
    . 

Sio,如何在mysql中實現這個功能?請幫助...

+0

@Barranka我玩了一些Group和Distinct哪個不起作用。所以我不知道如何進一步... – Stranger 2013-03-18 06:16:28

回答

0

您需要將兩列分組:user_idfunction,以便您可以聚合剩餘的列。

SELECT MAX(ID) ID, 
     MAX(timebox_ID) timebox, 
     user_ID, 
     `function`, 
     GROUP_CONCAT(object_ID) objectList 
FROM TableName 
GROUP BY user_ID, `function` 
+0

這將返回只有1行與整個結果的最大(id)和group_concat(object_id) – Stranger 2013-03-18 06:07:23

+0

@Udhay你測試查詢? 'GROUP_CONCAT()'允許連接行而不是列。 – 2013-03-18 06:09:17

+0

是的,我試過了!它只返回一行。還有什麼理由,你正在使用MAX()'timebox_id'也是不需要的? – Stranger 2013-03-18 06:14:09

相關問題