0

1行の列をそれぞれ1行に変換する方法は?

以下のようにテーブルにデータを持っています:

+------+------+------+------+
| col1 | col2 | col3 | col4 |
+------+------+------+------+
|  a1  |  a2  |  a3  |  a4  |
+------+------+------+------+

必要な出力: 行のすべての値は、以下のように 1 つの列に入れる必要があります。

+---------------+
|   All_cols    |
+---------------+
|  a1,a2,a3,a4  |
+---------------+

画像のように: ここにmytableは常に 1 つのレコードがあるため、以下のような出力が必要です。

ここに画像の説明を入力

複数の結合が必要なため、以下のSQLは避けたい:

select a1.name from  accounts a1 where a1.id='658f3b73-8260-5a7a-ae7e-54c25deded36'

union

Select a2.name from accounts a1
left join accounts a2 on a1.id=a2.parent_id where a1.id='658f3b73-8260-5a7a-ae7e-54c25deded36'

union

Select a3.name from accounts a1
left join accounts a2 on a1.id=a2.parent_id
left join accounts a3 on a2.id=a3.parent_id where a1.id='658f3b73-8260-5a7a-ae7e-54c25deded36'

union

Select a4.name from accounts a1
left join accounts a2 on a1.id=a2.parent_id
left join accounts a3 on a2.id=a3.parent_id
left join accounts a4 on a3.id=a4.parent_id where a1.id='658f3b73-8260-5a7a-ae7e-54c25deded36'

union

Select a5.name from accounts a1
left join accounts a2 on a1.id=a2.parent_id
left join accounts a3 on a2.id=a3.parent_id
left join accounts a4 on a3.id=a4.parent_id
left join accounts a5 on a4.id=a5.parent_id where a1.id='658f3b73-8260-5a7a-ae7e-54c25deded36'
4

1 に答える 1