1. ホーム
  2. sql

[解決済み] MySQLの結果をカンマで区切ったリストで表示

2022-05-13 04:52:10

質問

次のようなクエリを実行する必要があります。

SELECT p.id, p.name, 
       (SELECT name 
          FROM sites s 
         WHERE s.id = p.site_id) AS site_list
  FROM publications p

しかし、私はサブセレクトがデータの列ではなく、カンマで区切られたリストを返すようにしたいと思っています。 これは可能でしょうか、また可能であればどのように可能でしょうか?

どのように解決するのですか?

あなたは GROUP_CONCAT を使うと、例えば次のようなことができます。

SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list
FROM sites s
INNER JOIN publications p ON(s.id = p.site_id)
GROUP BY p.id, p.name;