Vinzenz Mai: SQL Abfrage SQLite

Beitrag lesen

Hallo Marc,

Ich habe eine PHP Seite mit einer SQLite Datenbank. Darin sind 3 Tabellen:

  • t_users (ID, lastname)
  • t_teams (ID, teamname)
  • t_users_teams (ID, userID, teamID)

Nun kann natürlich ein Mitarbeiter mehreren Teams zugewiesen sein. Nun möchte ich eine Abfrage generieren, die jeweils eine Datenzeile pro Mitarbeiter ausweist, aber alle zugewiesenen Teams auflistet. Das müsste so aussehen:

lastname         teamname
Mitarbeiter 1    Team 1, Team 2
Mitarbeiter 2    Team 2, Team 4, Team 5

Ist das irgendwie möglich?

Ja, SQLite unterstützt erfreulicherweise GROUP_CONCAT(), siehe http://www.sqlite.org/lang_expr.html (suche nach group_concat mit der Suchefunktion Deines Browsers):

SELECT  
    u.lastname,  
    GROUP_CONCAT(t.teamname, ", ")  
FROM  
    t_users u  
INNER JOIn  
    t_user_teams ut  
ON  
    u.ID = ut.userID  
INNER JOIN  
    t_teams t  
ON  
    ut.teamID = t.ID  
GROUP BY  
    u.lastname  
ORDER BY  
    u.lastname  

sollte das gewünschte Resultat liefern.

Freundliche Grüße

Vinzenz