Динамически назначать псевдоним всем именам полей в запросе msyql

У меня есть 2 таблицы в mysll DB. Обе таблицы имеют несколько фиксированных и немного динамических столбцов (Поля / Схема). Я хочу присоединиться к обеим таблицам со следующим запросом:

SELECT * FROM `cd` cd LEFT JOIN cd_n cn ON cd.id = cn.fk_cd 

И я хочу привести к тому, что

 CD_Column1 CD_Column1 CD_Column3 ...... CN_Column1 CN_Column2 CN_Column3 ..... value value value ...... value value value ... value value value ...... value value value ... 

Где ….. – динамические имена столбцов обеих таблиц. Так что я не знаю имена столбцов, потому что они динамические, и я хочу переименовать (псевдоним) на уровне запросов. Пожалуйста, дайте мне знать, как я могу это сделать?

Related of "Динамически назначать псевдоним всем именам полей в запросе msyql"

Вам нужно будет запросить information_schema чтобы получить имена столбцов этих двух таблиц. Предположим, что у вас будут имена столбцов cd хранящиеся в массиве $cd_columns и cd_n столбцов cd_n в массиве $cdn_columns .

Затем в PHP при создании цикла запроса через массивы столбцов и делать что-то вроде этого:

 $sql = 'SELECT '; // add the cd columns $i = 0; foreach($cd_columns as $col) { $sql .= "{$col} AS CD_Column{$i},"; $i++; } // add the cd_n columns $i = 0; foreach($cdn_columns as $col) { $sql .= "{$col} AS CN_Column{$i},"; $i++; } // remove the trailing comma $sql = trim($sql, ','); // continue the SQL $sql .= ' FROM ...'; 

Было ли это полезно?