我有三个表RESOURCES,SERVERS,ACTIVE_RESOURCES。 HOSTED_RESOURCES表服务器作为参照表,列出资源处于活动状态的服务器。目前我使用bellow查询来检索资源:
SELECT r.resource_id, r.serve_url, r.title, r.category_id, ar.server_id
FROM active_resources ar
LEFT JOIN resources AS r ON (ar.resource_id = r.id)
WHERE hr.resource_id = (
select id from resources
and id < 311
order by date_added desc
limit 1
);
因为在大多数情况下资源在所有服务器上都可用,所以我最终在查询结果中有重复信息,例如:
resource_id | serve_url | Title | category_id | server_id
-----------------------------------------------------------------------------
309 | /b/7514.pdf | Tuesdays with Morrie | 1 | 1
309 | /b/7514.pdf | Tuesdays with Morrie | 1 | 2
除了server_id
之外的所有数据都是重复的,所以我希望将结果连接到一行显示其他列中的服务器ID,或者甚至只是将服务器ID列为逗号分隔的一个列。
感谢您关注此事。
答案 0 :(得分:0)
SELECT r.resource_id, r.serve_url, r.title, r.category_id,
GROUP_CONCAT(ar.server_id) AS server_id
FROM active_resources ar
LEFT JOIN resources AS r ON (ar.resource_id = r.id)
WHERE hr.resource_id = (
select id from resources
and id < 311
order by date_added desc
limit 1
)
GROUP BY r.resource_id, r.serve_url, r.title, r.category_id
;