Może moje pytanie nie jest tak jasne, proszę pozwolić mi wyjaśnić: Potrzebuję uzyskać listę wszystkich użytkowników wraz z odpowiednią kombinacją numerów klientów/hurtowników, każdy klient ma 1 do 4 różnych Numer klienta/hurtownik comboJak grupować wyniki łączenia wewnętrznego mysql z wierszy w kolumny
W moim db mam 2 tabele
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
Korzystanie prosta INNER JOIN dostałem wiersze klienta powielane, po jednym dla każdego odpowiedni numer klienta/hurtownika
udało mi się ustalić wyniki stosując GROUP_CONCAT w tego zapytania:
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
Jak na razie dobrze, ale muszę „eksplodować” Połączenie numer klienta/hurtowni w różnych kolumn więc moje wyniki mogą wyglądać następująco :
user_id | name | client_no_wholesaler1 | client_no_wholesaler2 | ...up to 4
----------------------------------------------------------------------------
1 | a | ac1, aw1 | ac2, aw2 |
2 | b | bc1, bw1 | |
Robi to po otrzymaniu wyników zapytania z prostym PHP eksplodować nie jest opcją, ponieważ używam klasę, aby wygenerować plik XLS i jego podstawie moich zapytań kolumn wynikowych, jakieś pomysły zostaną docenione .
"Pivot" Nauczyłem się czegoś nowego dzisiaj, wielkie dzięki, twoje zapytanie działa tak, jak potrzebowałem – hey259