Возможно, мой вопрос не так ясен, позвольте мне объяснить: Мне нужно получить список всех пользователей вместе с соответствующей комбинацией номер/оптовик клиента, каждый клиент имеет 1 до 4 различных номеров клиентов/оптовиков.
В моем db у меня есть 2 таблицы
USERS
id | name
---------
1 | a
2 | b
CLIENT_NUMBERS
id | user_id | number | wholesaler
----------------------------------
1 | 1 | ac1 | aw1
2 | 1 | ac2 | aw2
3 | 2 | bc1 | bw1
Использование простой INNER JOIN Я получил дублированные строки клиента, по одному для каждого соответствующего клиентского номера/оптовика
Мне удалось исправить результаты, используя GROUP_CONCAT в этом запросе:
SELECT a.id AS user_id, a.name AS Name
GROUP_CONCAT(b.client_no, ', ', b.wholesaler SEPARATOR '; ') AS client_no_wholesaler
FROM users AS a
INNER JOIN client_numbers AS b ON a.id = b.user_id
GROUP BY ID
user_id | name | client_no_wholesaler
--------------------------------------------
1 | a | ac1, aw1; ac2, aw2
2 | b | bc1, bw1
Пока все хорошо, но мне нужно "взорвать" комбинацию номер клиента/оптовика в разные столбцы, чтобы мои результаты выглядели так:
user_id | name | client_no_wholesaler1 | client_no_wholesaler2 | ...up to 4
----------------------------------------------------------------------------
1 | a | ac1, aw1 | ac2, aw2 |
2 | b | bc1, bw1 | |
Выполнение этого после получения результатов запроса с помощью простого взлома PHP не является вариантом, потому что я использую класс для создания файла XLS и его основываясь на столбцах результатов запроса, любые идеи будут оценены.