Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyciągnąć wartości kolumny kilku rekordów do jednego pola?
Forum PHP.pl > Forum > Bazy danych > MySQL
ky3orr
Witam wszystkich,

stanąłem przed następującym problemem:

-mam tabelę z Klientami, gdzie każdy ma pole ID,
-mam druga tabelę, gdzie każdy Klient ma tyle rekordów ile ma numerów telefonu (oczywiście jest także pole ID).

Zadanie polega na wyciągnięciu tabeli, w której są podane dane Klienta (z pierwszej tabeli) oraz dodatkowa kolumna, gdzie po przecinku maja pojawić się wszystkie telefony.

Jak się za to zabrać?
Jakimś podzapytaniem? Jakiś sposób na grupowanie?
Nie mam pojęcia jak ugryźć temat - może koledzy podpowiedzą...

pozdrawiam
mkozak
funkcja GROUP_CONCAT
ky3orr
Serdeczne dzięki za pomoc!

to jest to czego szukałem smile.gif

jeśliby ktoś potrzebował natchnienia to podrzucam prosty kodzik:

  1. SELECT kontrahentid, group_concat(DISTINCT concat_ws('',kontrahentphonedirectional,' ',kontrahentphonenumber) separator '; ') AS phone
  2. FROM kontrahentphone
  3. GROUP BY kontrahentid


group_concat zbiera razem nie puste pola zaznaczone jako parametr i scala je za pomocą separatora.
distinct usuwa zdublowane elementy.

pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.