2012-03-25 219 views
1

我有這樣的一個表上的多個MySQL行:合併具有相同的ID

id employee_id contract_id  month year d1  d2  d3 
1   25  1    11  2011 1  01  01 
2   16  5    11  2011 1  11  0 
3   29  3    11  2011 1  001  100 
1   25  4    11  2011 0  11  011 

想我需要一個月= '11' AND年=‘2011年的數據’,然後對所有行具有相同的「EMPLOYEE_ID ',數據應該像這樣合併:

id employee_id contract_id  month year d1  d2  d3 
1   25  1,4   11  2011 1,0 01,11 01,011 
2   16  5    11  2011 1  11  0 
3   29  3    11  2011 1  001  100 

我在嘗試GROUP_CONCAT,但找不到查詢。請幫忙。

回答

1
SELECT *, 
     GROUP_CONCAT(`d2`) as `d2`, 
     GROUP_CONCAT(`d3`) as `d3`, 
     GROUP_CONCAT(`contract_id`) as contract_id 
    FROM table WHERE month='11' AND year='2011' GROUP BY employee_id; 
3
SELECT 
    id, 
    employee_id, 
    GROUP_CONCAT(contract_id SEPARATOR ',') AS contract_ids, 
    `month`, 
    `year`, 
    GROUP_CONCAT(d1 SEPARATOR ',') AS d1s, 
    GROUP_CONCAT(d2 SEPARATOR ',') AS d2s, 
    GROUP_CONCAT(d3 SEPARATOR ',') AS d3s 
FROM 
    `table` 
WHERE 
    `month` = 11 AND `year` = 2011 
GROUP BY 
    employee_id 
+0

就像一個魅力。謝謝。 – user1291399 2012-03-25 16:10:40