私も同様の問題に遭遇したとき、綺麗かどうかは別にして、動的クエリで何とかしました。
こういう感じです。
SET group_concat_max_len = 65535; /* concatの結果が切れないようにする */
SET @tbl1 = 'table_1';
SET @cols1 =
(
SELECT
GROUP_CONCAT(CONCAT('`', @tbl1 ,'`.`',COLUMN_NAME,'` as \'', @tbl1 , '.', COLUMN_NAME, '\'') SEPARATOR ', \n')
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = database()
AND TABLE_NAME = @tbl1
);
SET @tbl2 = 'table_2';
SET @cols2 =
(
SELECT
GROUP_CONCAT(CONCAT('`', @tbl2 ,'`.`',COLUMN_NAME,'` as \'', @tbl2 , '.', COLUMN_NAME, '\'') SEPARATOR ', \n')
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = database()
AND TABLE_NAME = @tbl2
);
SET @query = concat(
'select\n',
@cols1,',\n',
@cols2,'\n',
'FROM\n',
'table_1\n',
'left join table_2 on table_1.id = table_2.table_1_id
');
PREPARE select_data FROM @query;
EXECUTE select_data;
DEALLOCATE PREPARE select_data;