Crear lista separada por comas usando la consulta SQL
]]Cuando varias tablas contienen datos de aplicaciones y recursos, una tarea común es enumerar una tabla que enumera todos los nombres de recursos y nombres de aplicaciones asociadas separados por comas. Para lograr esto con una sola consulta SQL, siga estos pasos:
mysql:
SELECT r.name,
GROUP_CONCAT(a.name SEPARATOR ',') AS application_names
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name
SQL Server (2005) :
SELECT r.name,
STUFF((SELECT ',' a.name
FROM APPLICATIONS a
JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id
WHERE ar.resource_id = r.id
GROUP BY a.name
FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '') AS application_names
FROM RESOURCES r
SQL Server (2017) :
SELECT r.name,
STRING_AGG(a.name, ',') AS application_names
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name
oracle: Oracle proporciona una variedad de opciones de agregación/conexión de cadena. Consulte la documentación para obtener una sintaxis y requisitos específicos.
Estas consultas conectan la tabla "Recursos" con las tablas "AplicationsResources" y "Aplicaciones" para recuperar el nombre del recurso y el nombre de la aplicación asociada. Las funciones "Group_concat", "Stuff" o "String_agg" se usan para conectar el nombre de la aplicación a la lista separada por comas de cada recurso. Para mejorar la legibilidad, agregamos un alias application_names
a la columna de resultados.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3