Forse la mia domanda non è così chiara, per favore lasciatemi spiegare: Quello che mi serve è ottenere un elenco di tutti gli utenti insieme a una combinazione numero cliente/grossista corrispondente, ogni cliente ha 1 fino a 4 diverse combo codice cliente/grossistaCome raggruppare mysql inner join risultati da righe in colonne
Nel mio db ho 2 tabelle
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
Utilizzando un semplice INNER JOIN ho ottenuto file client duplicati, uno per ogni corrispondente numero di client/grossista
Sono riuscito a fissare i risultati utilizzando group_concat in questa query:
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
Fin qui tutto bene, ma ho bisogno di "esplodere" la combinazione di cifre client/grossista in diverse colonne così i miei risultati possono assomigliare a questo :
user_id | name | client_no_wholesaler1 | client_no_wholesaler2 | ...up to 4
----------------------------------------------------------------------------
1 | a | ac1, aw1 | ac2, aw2 |
2 | b | bc1, bw1 | |
in questo modo dopo aver ottenuto i risultati della query con un semplice PHP explode non è un'opzione perché sto utilizzando una classe per generare un file XLS e la sua base a mia domanda colonne dei risultati, tutte le idee saranno apprezzati .
"Pivot" ho imparato qualcosa di nuovo oggi, grazie mille, la tua query funziona come avevo bisogno – hey259