###前提・実現したいこと
Mysql 5.5.36 にて テーブルデータから出力結果のようなテーブルを得たいのですが
どのようなSQL文を書けばよろしいでしょうか?
テーブルデータ
key a b c
あ 11 12 13
い 21 22 23
う 31 32 33
出力結果
row1 row2 val
a あ 11
a い 21
a う 31
b あ 12
b い 22
b う 32
c あ 13
c い 23
c う 33
###試したこと
SELECT CONCAT( "a" ) AS row1
, key
as row2
, a
AS val
FROM テーブルデータ
union
SELECT CONCAT( "b" ) AS row1
, key
as row2
, b
AS val
FROM テーブルデータ
union
SELECT CONCAT( "c" ) AS row1
, key
as row2
, c
AS val
FROM テーブルデータ
上記のようなSQL文で一応できますが、実際にはカラム数が多いのでしんどいです。
カラム数が増えてもSQL分は変わらないようにできないものでしょうか?
select COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME
!= "Key" and TABLE_NAME = 'テーブルデータ' order by TABLE_NAME
のようにカラム名を取得する分を絡めればよさそうですがその先は検討が付きません。
助言などいただければ幸いです。
回答3件
あなたの回答
tips
プレビュー