

MySQLについて質問です。

テーブルの主キーを取得し、値を結合したカラムを追加するということを1回のクエリで実現したいです。

以下のようなテーブルがあったとして、プライマリキーが'id'と'client_id'の2つだったとします。

[code]

    +------+-----------+-------+
    | id   | client_id | name  |
    +------+-----------+-------+
    | A001 |         1 | userA |
    | A002 |         2 | userB |
    +------+-----------+-------+
    
[/code]

プライマリキーの内容をカンマ区切りで結合した'result'というカラムを追加したいです。

[code]

    +------+-----------+-------+---------+
    | id   | client_id | name  | result  |
    +------+-----------+-------+---------+
    | A001 |         1 | userA | A001,1  |
    | A002 |         2 | userB | A002,2  |
    +------+-----------+-------+---------+
    
[/code]

2回のクエリでの実装は以下の手順で行えましたが、1クエリで実現する方法をご教授いただきたいです。

  1. INFORMATION_SCHEMA.COLUMNSからプライマリキーのリストを取得
  2. 1で取得したプライマリキーからテーブルをSELECTするSQLを構築、CONCAT_WS関数でresultカラムを作成

以上です。よろしくお願いいたします。


CC BY-SA 4.0
2019-09-17T11:26:33.420
59123
2019-09-17T11:26:33.420
35891
question
mysql sql
プライマリキーのカラムを取得し、値を結合したカラムを作成したい