Mijn vorige antwoord was voor mysql. Aangezien de tag sindsdien is bijgewerkt voor de vraag, is hier de zoekopdracht voor sql-server-2008
.
Maak een lijst met kolommen van de waarden in table_levels
, verwijder de laatste ,
, bouw een queryreeks om u de resultaten te geven van table_results
, en voer dan uit.
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)
Vorig antwoord. Werkt voor mssql
Zie demo voor mysql
Gebruik GROUP_CONCAT
om een string te maken van de waarden in table_levels
en bouw vervolgens een queryreeks om u de resultaten te geven van 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;