I have the following table ‘draftWorker’
select * from draftWorker;
+--------+----------+
| draftID| WorkerID | 
+--------+----------+
|      7 | 8280     |      
|      7 | 7794     |       
|      7 | 4633     |       
|    587 | 8280     |
|    587 | 4633     |
+--------+----------+
The following query is giving me the following result.
SELECT draftID, GROUP_CONCAT(DISTINCT CONCAT(WorkerID)) AS Workers FROM 
draftWorker
GROUP BY draftID;
+-----------+----------------+
| draftID   | Workers        | 
+-----------+----------------+
|      7    | 8280,7794,4633 |      
|     587   | 8280,4633      |
+-----------+----------------+
But I actually need this
+-----------+---------+---------+---------+
| draftID   | Worker1 | Worker2 | Worker3 |
+-----------+---------+---------+---------+
|      7    | 8280    | 7794    | 4633    |
|     587   | 8280    | 4633    |         |
+-----------+---------+-------------------+
Any idea?
[EDIT]
Also Tried the following sql. Still long way to go.
SELECT draftID, Workers From (
SELECT  @position := 0, draftID, 
GROUP_CONCAT(DISTINCT CONCAT(WorkerID, ' As WorkerID', (@position := 
@position + 1) )) As Workers
FROM draftWorker
GROUP BY draftID) AS C;
+-----------+--------------------------------------------------------+
| draftID   | Workers                                                | 
+-----------+--------------------------------------------------------+
|      7    | 8280 As WorkerID1,7794 As WorkerID2,4633 As WorkerID3  |      
|     587   | 8280 As WorkerID1,4633 As WorkerID2                    |
+-----------+--------------------------------------------------------+
