Andreas: Abfrage über mehrere zeilen zusammenfassen

Beitrag lesen

Hallo Andreas,

dann machst Du entweder etwas falsch oder nutzt nicht MySQL.
Bitte poste Dein Statement mit GROUP_CONCAT() und gib das von Dir verwendete

Hallo ok ich benutze mysql mit php5 und einbindung ueber mysqli und ich habe es so versucht

SELECT distinct tbl_Mitarbeiter.id, tbl_Mitarbeiter.Name,
    tbl_Mitarbeiter.Vorname, group_concat(tbl_Abteilungen.Name AS Abteilung)
    FROM tbl_Mitarbeiter, tbl_Abteilungen, tbl_Mitarb_Abt
    WHERE tbl_Mitarbeiter.id = tbl_Mitarb_Abt.FS_Mitarb
    AND tbl_Abteilungen.id = tbl_Mitarb_Abt.FS_Abt
    AND tbl_Mitarbeiter.EAN = '" . $kennung . "'");

ich versuche mal, Dein Statement lesbar und für mich verständlich zu gestalten. Dazu nutze ich die explizite Join-Syntax und Alias-Namen.

SELECT

m.id,
    m.Name,
    m.Vorname,
    GROUP_CONCAT(a.Name) AS Abteilungen,  -- hier war was falsch
FROM
    tbl_Mitarbeiter m
INNER JOIN tbl_Mitarb_Abt ma
ON m.id = ma.FS_Mitarb
INNER JOIN tbl_Abteilungen
ON ma.FS_Abt = a.id
WHERE m.EAN = '<irgendein wert>'
GROUP BY                                  -- die Spalten nach denen gruppiert
    m.id,                                 -- wird, sollte man nicht vergessen
    m.Name,
    m.Vorname


>   
> sollte eigentlich das von Dir gewünschte zurückliefern.  
>   
> Tipp: Teste SQL-Statements zuerst mit dem Client Deiner Wahl, z.B. phpMyAdmin  
> oder MySQL-Query-Browser oder was auch immer, bevor Du die Statements mit einer Programmiersprache wie PHP zusammenbaust.  
>   
> Noch ein Tipp: Wenn Du schon mysqli verwendest, dann empfehle ich, dass Du Dir  
> den Luxus von prepared Statements gönnst:  
>   
> <http://www.php.net/manual/de/function.mysqli-stmt-prepare.php>  
> <http://www.php.net/manual/de/function.mysqli-stmt-bind-param.php>  
> <http://www.php.net/manual/de/function.mysqli-stmt-execute.php>  
>   
> und weitere dort verlinkte Funktionen  
>   
>   
> Freundliche Grüße  
>   
> Vinzenz  
  
Hallo vielen Dank für die ausführlichen Antworten und die links (werde ich mir heute abend auf jedenfall nochmal genauer ansehen) ;)  
die sql statements habe ich mit php my admin getestet (mit dem querry-browser habe ich leider keine verbindung auf den debian-server herstellen können, kenne mich damit noch nicht aus)  
leider funktionierte bisher leider noch keine bei der von dir vorgeschlagenen (sehe ich eigentlich auch keine fehler) und kriege diese meldung:  
MySQL meldet: Dokumentation  
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM  tbl\_Mitarbeiter m  INNER JOIN tbl\_Mitarb\_Abt ma  ON m . id = ma . FS\_Mitar' at line 1