SQL - Mehrere Zeilen zusammenfassen
Danilo
- datenbank
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
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
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