Schnelle Lösung bei Gruppierungen (Newb)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schnelle Lösung bei Gruppierungen (Newb)

    Moin Moin ersteinmal (man sollte ja die Höflichkeit wahren)!

    Ich bin grad frisch zu PHP und MySQL hinzugestossen und hab auch schon mein erstes Problem. Dachte das man mir hier schnell helfen kann.

    Also: Habe eine Musikdatenbank, (Tabellen: alben, interpreten, Genres und Lookup-Tabelle für Alben<->Genres). Wenn ich jetzt folgende Abfrage formuliere:

    PHP-Code:
    $abfrage mysql_query("SELECT DISTINCT tab_alben.name AS alben, jahr, 
    tracks, tab_interpreten.name AS interpreten, tab_genres.name AS genres 
    FROM tab_alben, tab_interpreten, tab_genres, tab_nm 
    WHERE IID=tab_interpreten.ID AND tab_alben.ID=AID AND tab_genres.ID=GID  ORDER BY jahr "
    ); 
    ist zwar alles ganz toll, allerdings habe ich Alben mit mehreren Genres doppelt in der Ausgabe. Gibt es da Funktionen oder anderweitige Methoden, um in der Spalte Genres einfach alle Genres aufzulisten? So im im Stile von:

    Albumname -- Erscheinungsjahr -- Tracks -- Interpret -- Genres

    1984(for the love of the big broher) -- 1985 -- 8 -- eurythmics -- pop, elektro

    Geht das? Und wenn ja, wie wird dann der Wert zurückgeben? Als Array oder als ein einziger Wert (also den Wert "pop, elektro")

    Wäre ganz nett wenn mir jemand helfen kann.

    Mit freundlichen Grüßen,

    Stephan
    Zuletzt geändert von Dampfziege; 20.06.2007, 09:33.

  • #2
    group_concat
    Und brech die lange Zeile um, horizontale Scrollbalken sind uncool...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Super, hat funktioniert, musste allerdings noch eine GROUP BY Klausel einfügen, ansonsten hat mich der Server angemeckert. Allerdings war es laut mysql-Referenz nicht ersichtlich, dass diese weitere Klausel notwendig ist (oder ich habs nicht erkannt, immerhin gehört GROUP_CONCAT ja wohl zu den GROUP BY's...)

      Auf jeden Fall herzlichen Dank, und die Syntax hab ich zerhackt (ich dachte das sie automatisch zerhackt wird)!

      MfG Stephan

      Kommentar

      Lädt...
      X