0

RESOURCES、SERVERS、ACTIVE_RESOURCES の 3 つのテーブルがあります。HOSTED_RESOURCES テーブル サーバーは、リソースがアクティブになっているサーバーを一覧表示するための参照テーブルとして使用されます。現在、次のクエリを使用してリソースを取得しています。

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は重複しているため、結果を 1 つの行に連結してサーバー ID を追加の列に表示するか、サーバー ID をコンマで区切って 1 つの列にリストすることを望んでいました。

ご覧いただきありがとうございます。

4

1 に答える 1

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
;
于 2013-05-28T18:44:06.320 に答える