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 |
+-----------+--------------------------------------------------------+