У меня есть 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 ...
Где ….. – динамические имена столбцов обеих таблиц. Так что я не знаю имена столбцов, потому что они динамические, и я хочу переименовать (псевдоним) на уровне запросов. Пожалуйста, дайте мне знать, как я могу это сделать?
Вам нужно будет запросить 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 ...';
Было ли это полезно?