php - Mysql - 将行转换为列

标签 php mysql codeigniter

问题:

如何将下表中的数据导出到 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/

相关文章:

php - 使用查询构建器创建子查询

javascript - 将 AJAX 添加到 PHP 表单

php - 当我们在 PHP/MYSQL 中 JOIN 4 个表时需要基于 id 的不同值

mysql - Group by语句列名解析

php - 如何编写此 mySQL 查询以在每一列中显示多个数据?

cPanel 中的 PHP Cron 作业无法正常工作

javascript - 仅在每个前置标记之前和之后的所有新行上将\n 替换为 <br/>

PHP MYSQL 选择邮政编码或客户 ID 或其他任何内容

php - 我正在使用 current_timestamp。我需要什么函数来找出 "one day from now"

php - Codeigniter 社区 AUth 使用未定义的常量 USE_SSL