In questo modo trovate un esempio su come estrarre da due tabelle in relazione molti a molti tutte gli elementi della prima più tutti i valori in una colonna della seconda in un solo campo.
Forse con un esempio è più semplice spiegare il requisito:
Data una tabella prodotto una categoria in relazione molti a molti (tramite tabella prodottocategoria bisogna estrarre i dati nella seguente maniera [prodotto], [elenco delle categorie separate da virgola].
Definizione delle tabelle:
- PRODOTTO
- ID int PK
- Description NVARCHAR(50)
- CATEGORIA
- ID int PK
- Description NVARCHAR(50)
- PRODOTTOCATEGORIA
- PRODOTTO_ID int FK(PRODOTTO.ID)
- CATEGORIA_ID int FK(CATEGORIA.ID)
Statement SQL:
SELECT PRO.Description AS Prodotto,
STUFF((SELECT ',' + CAT.Description
FROM Categoria AS CAT
INNER JOIN ProdottoCategoria AS PCA ON PCA.Categoria_Id = CAT.ID
WHERE PCA.Prodotto_Id = PRO.ID
FOR XML PATH('')),1,1,'') AS Categoria
FROM Prodotto AS PRO
1fe0f834-02bd-4ca4-a561-86e3346ce871|1|2.0
Code
T-SQL, Sample, Snippet