从多行查询创建单行SQL条目并将其发布到新表中

I have a SQL table_1 with the following data:

enter image description here

There are multiple entries with and the same MSISDN gets repeated, but with different servicCodes in each line.

I would like to copy the info into a new table_2, but with only one entry per MSISDN and some extra columns with the services assigned to it. Can this be done with a single SQL query, or is it be best to use PHP to do a distinct query and loop through the results?

Thanks.

With SQL you can create a second table with a column with the servicCodes concatenated. You can use the GROUP BY to aggregate around the MSISDN column.

SELECT MSISDN, GROUP_CONCAT(servicCodes) as servicCodes_concatenated
FROM table
GROUP BY MSISDN

If you want to create multiple columns to have the values of servicCodes it's easier to use PHP.

Use INSERT ... SELECT syntax so you can filter and modify rows in single query. https://dev.mysql.com/doc/refman/5.7/en/insert-select.html

I'd guess what you're looking for is called a Pivot Table.

See mysql pivot table

Everything is most probably said there, so just one comment on them:

As you get dynamic column names per definition it's hard(er) to deal with those columns lateron. Thus you most probably need some more sophisticated procedures to make further/other use of that data than just reporting it.