我的 mysll 数据库中有 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 ...
其中 ..... 是两个表的动态列名称。
所以情况是我不知道列名,因为它们是动态的,我想在查询级别重命名(别名)它。请让我知道我该怎么做?
您需要查询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 ...';
这个有帮助吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)