, когда несколько таблиц содержат данные о приложениях и ресурсах, общая задача состоит в том, чтобы перечислить таблицу, в которой перечислены все имена ресурсов и имена связанных приложений, разделенных запятыми. Чтобы достичь этого с помощью одного запроса SQL, выполните следующие действия: ]
mysql:
select r.name, Group_concat (a.name seperator ',') as application_names От ресурсов Присоединяйтесь к ApplicationsResources ar на ar.resource_id = r.id Присоединяйтесь к приложениям a on a.id = ar.app_id Группа от r.name
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
]
select r.name, Материал ((Select ',' A.name Из приложений а Присоединяйтесь к ApplicationResources ar на ar.app_id = a.id Где ar.resource_id = r.id Группа от A.Name Для xml path (''), type) .value ('text () [1]', 'nvarchar (max)'), 1, len (','), '' ') as application_names Из ресурсов R
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
]
select r.name, String_agg (a.name, ',') как application_names От ресурсов Присоединяйтесь к ApplicationsResources ar на ar.resource_id = r.id Присоединяйтесь к приложениям a on a.id = ar.app_id Группа от r.name
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
]
эти запросы соединяют таблицу «Ресурсы» с таблицами «Приложения -обработки» и «приложения» для извлечения имени ресурса и связанного имени приложения. Функции «Group_Concat», «Stuff» или «string_agg» затем используются для подключения имени приложения к списку каждого ресурса, разделенного запятыми. Чтобы улучшить читаемость, мы добавили псевдоним application_names в столбец результата.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3