Comment puis-je créer une liste séparée par des virgules à l'aide d'une requête SQL?

J'ai 3 tables appelé:

  • Applications (id, nom)
  • Ressources (id, nom)
  • ApplicationsResources (id, app_id, resource_id)

Je veux afficher sur une interface graphique, un tableau de tous les noms de ressource. Dans une cellule de chaque ligne je voudrais la liste de toutes les applications (séparés par des virgules) de la ressource.

La question est donc, quelle est la meilleure façon de le faire en SQL que j'ai besoin d'obtenir toutes les ressources, et j'ai aussi besoin d'obtenir toutes les applications pour chaque ressource?

Dois-je exécuter un select * from ressources d'abord et ensuite une boucle sur chaque ressource et faire une requête distincte pour chaque ressource pour obtenir la liste des applications pour cette ressource?

Est-il une manière que je peux le faire en une seule requête?

  • La base de données que vous utilisez?
  • je voudrais que ma solution pour être agnostique db
  • La manipulation des chaînes n'est pas très db agnostique.
  • Voir aussi stackoverflow.com/questions/1048209/...
  • Ce produit de base de données et la version?
  • Il est sql server 2008
  • Vous avez peut-être nouveau, DONC n'oubliez pas de upvote des réponses utiles et d'accepter celui qui est le plus utile pour vous.

InformationsquelleAutor leora | 2009-11-30