Danilo: SQL - Mehrere Zeilen zusammenfassen

Guten Tag

Ich verwende MySQL und habe folgendes Problem:

------------------------------------
¦ id ¦ ticket ¦ feldtyp     ¦ feld ¦
------------------------------------
¦ 2  ¦ t2     ¦ status      ¦ neu  ¦
¦ 3  ¦ t3     ¦             ¦      ¦
¦ 4  ¦ t4     ¦ status      ¦ neu  ¦
¦ 4  ¦ t4     ¦ wichtigkeit ¦ hoch ¦
¦ 5  ¦ t5     ¦ wichtigkeit ¦ tief ¦
------------------------------------

Dies ist das Resultat folgender SQL Abfrage:

SELECT t.id, t.ticket, ft.feldtyp, fv.feld
FROM ticket AS t
LEFT JOIN ticket_field_value AS fv ON t.id = fv.id
LEFT JOIN ticket_field AS ft ON fv.typ = ft.id
ORDER BY id

Nun habe ich aber aufgrund des Left Joins zwei Zeilen mit Status und Wichtigkeit bei Ticket #4. Kann ich die irgendwie zusammenfassen? Da ich später mit PHP daraus lese könnte man die z.B. mit Trennzeichen trennen. Etwa so:

-------------------------------------------------
¦ id ¦ ticket ¦ feldtyp             ¦ feld      ¦
-------------------------------------------------
¦ 4  ¦ t4     ¦ status, wichtigkeit ¦ neu, hoch ¦
-------------------------------------------------

Kann man das mit SQL irgendwie bewerkstelligen?

Mfg
Danilo

  1. Hello,

    Ich verwende MySQL und habe folgendes Problem:
    Kann man das mit SQL irgendwie bewerkstelligen?

    Jein, unter MySQL allerdings zum Glück ja.
    Wende noch ein GROUP BY auf t.id, t.ticket an (und alle weiteren Spalten, für die du nicht eine der Aggregatsfunktionen wie MAX, MIN, ... verwendest), und verwende für die weiteren beiden Spalten GROUP_CONCAT

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
    1. Wende noch ein GROUP BY auf t.id, t.ticket an (und alle weiteren Spalten, für die du nicht eine der Aggregatsfunktionen wie MAX, MIN, ... verwendest), und verwende für die weiteren beiden Spalten GROUP_CONCAT

      PERFEKT! Danke, du hast mir ein mühsames Workaround erspart...

      Danilo