我在mysll DB中有2个表。两个表都有很少的固定列和少量动态列(字段/模式)。我想用以下查询加入这两个表:
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 ...
其中.....是两个表的动态列名。 所以情况是我不知道列名称,因为它们是动态的,我想在查询级别重命名(别名)它。请让我知道我该怎么做?
答案 0 :(得分:1)
您需要查询information_schema
以获取该两个表的列名。让我们假设您将cd
数组存储在数组$cd_columns
中,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 ...';
这有用吗?