Jawaban saya sebelumnya adalah untuk mysql. Karena tag telah diperbarui pada pertanyaan sejak saat itu, berikut adalah kueri untuk sql-server-2008
.
Buat daftar kolom dari nilai di table_levels
, hapus ,
, buat string kueri untuk memberi Anda hasil dari table_results
, lalu jalankan.
DECLARE @listStr varchar(MAX) = ( select selectColumnName + ',' from table_levels where level = 1 for xml path(''))
DECLARE @query varchar(MAX) = 'SELECT ' + LEFT(@listStr, LEN(@listStr)-1) + ' FROM table_results'
execute(@query)
Jawaban sebelumnya. Bekerja untuk mssql
Lihat demo untuk mysql
Gunakan GROUP_CONCAT
untuk membuat string dari nilai-nilai di table_levels
dan kemudian buat string kueri untuk memberi Anda hasil dari table_results
SET @listStr = ( SELECT GROUP_CONCAT(selectColumnName) FROM table_levels where level = 1);
SET @query := CONCAT('SELECT ', @listStr, ' FROM table_results');
PREPARE STMT FROM @query;
EXECUTE STMT;