问题:
如何将下表中的数据导出到 cvs excel 文件,以便dog_attributes 中的所有属性都拥有自己的列(主要使用 MySQL)?
注释:
- 我将一次导出一个 group_id 以及该 group_id 的所有dog_attributes。
- 每组可能有数千只狗和几百个 group_elements。我 认为主要使用 MySQL 而不是 PHP 循环会更好 MySQL 具有内置导出功能,因此速度更快。
- 我的服务器正在运行带有 PHP 和 Codeigniter 框架的 MySQL。
示例:
有四张 table 。
group_tbl - 组由管理员设置并用于包含常见元素。
+----+---------+
| id | var1 |
+----+---------+
| 1 | data |
| 2 | data |
+----+---------+
group_elements_tbl - 包含管理员设置的元素。这些是由用户填写的表单字段。
+----+----------+-----------+
| id | group_id | elmt_name |
+----+----------+-----------+
| 1 | 1 | height |
| 2 | 1 | color |
| 3 | 2 | breed |
+----+----------+-----------+
dogs_tbl - 包含每个用户创建的狗。
+----+----------+---------+
| id | group_id | name |
+----+----------+---------+
| 1 | 1 | Rover |
| 2 | 1 | Buck |
| 3 | 2 | Rex |
+----+----------+---------+
dog_attributes_tbl - 包含管理员在 groups_elements_tbl 中设置的自定义元素的值。
+----+--------------------+------------+
| id | group_elements_id | attr_value |
+----+--------------------+------------+
| 1 | 1 | 54 inches |
| 2 | 2 | brown |
| 3 | 1 | 34 inches |
| 3 | 2 | white |
| 4 | 3 | husky |
+----+---------+------------+
<小时/>
最终结果:
组 1 (group_id = 1) 的最终 Excel 电子表格:
+--------+----------+-----------+--------+
| dog_id | dog_name | height | color |
+--------+----------+-----------+--------+
| 1 | Rover | 54 inches | brown |
| 2 | Buck | 34 inches | white |
+--------+----------+-----------+--------+
组 2 (group_id = 2) 的最终 Excel 电子表格:
+--------+----------+-----------+
| dog_id | dog_name | breed |
+--------+----------+-----------+
| 3 | Rex | husky |
+--------+----------+-----------+
最佳答案
最快的方法是以编程方式处理这些属性 - 不使用 SQL
。
您应该获取所有狗,在第二次请求您感兴趣的狗的所有属性并将其与 foreach
等合并
关于php - Mysql - 将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914409/