1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Doppelte Einträge einer Spalte nebeneinander darstellen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von AlwinVI, 1 März 2017.

  1. AlwinVI

    AlwinVI Neuer Benutzer

    Ich möchte die Kategoriezuordnung für die Artikel aus einer Tabelle so exportieren, dass Artikel, die mehren Kategorien zugeordnet sind, in einer Zeile und sämtliche Kategorien nebeneinander dargestellt werden, Beispiel:

    Datenbanktabelle products_to_categorie
    Artikel 1 - Kategorie 1
    Artikel 1 - Kategorie 2
    Artikel 1 - Kategorie 3
    Artikel 2 - Kategorie 3
    Artikel 3 - Kategorie 2
    Artikel 3 - Kategorie 3

    gewünschte Tabelle:
    Artikel 1 - Kategorie 1 - Kategorie 2 - Kategorie 3....
    Artikel 2 - Kategorie 3....
    Artikel 3 - Kategorie 2 - Kategorie 3...
    .
    .
    .
    Damit kann ich dann die Kategoriezuordnungen in mein WaWi einlesen.

    Ist das mit MySQL realisierbar, oder muss ich da PHP zur Hilfe nehmen?
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Code:
    test=*# select * from alwin ;
     a  | k  
    ----+----
     a1 | k1
     a1 | k2
     a1 | k3
     a2 | k3
     a3 | k2
     a3 | k3
    (6 rows)
    
    test=*# select a, string_agg(k, ' - ') from alwin group by a order by a;
     a  |  string_agg  
    ----+--------------
     a1 | k1 - k2 - k3
     a2 | k3
     a3 | k2 - k3
    (3 rows)
    
    test=*#
    
    PostgreSQL. Schaue im Handbuch Deiner DB nach gleichwertigen Aggregatsfunktionen zu string_agg().
     
  3. AlwinVI

    AlwinVI Neuer Benutzer

    Vielen Dank, das hat mir sehr weitergeholfen.

    Der entsprechende Befehl in mySQL lautet: group_concat(spalte) und trennt mit Komma.
     
    akretschmer gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden