在我决定发布这个问题之前,已经进行了很多思考过程。试图以简化格式解释我的问题。
我的mySQL表中有2个表,其中一个是用户,另一个是与该用户相关的问题和答案。
简化示例:
用户
| id | name | registered_on |
|----|--------|---------------------|
| 1 | Aaron | 2017-02-01 00:01:02 |
| 2 | Baron | 2017-02-01 01:01:02 |
| 3 | Chiron | 2017-02-01 02:01:02 |
回答密钥
| id | user_id | keyword | value | created_on |
|----|---------|---------|---------|---------------------|
| 1 | 1 | gender | Male | 2017-02-01 00:01:02 |
| 2 | 1 | age | 24 | 2017-02-01 00:01:02 |
| 3 | 2 | gender | Male | 2017-02-01 00:01:02 |
| 4 | 2 | age | Unknown | 2017-02-01 00:01:02 |
| 5 | 3 | gender | God | 2017-02-01 00:01:02 |
我希望上面的关系是清楚的。所以我希望实现的是创建一个像这样的CSV报告
| name | gender | age | registered_on |
|--------|--------|---------|---------------------|
| Aaron | Male | 24 | 2017-02-01 00:01:02 |
| Baron | Male | Unknown | 2017-02-01 01:01:02 |
| Chiron | God | NULL | 2017-02-01 02:01:02 |
正如我的研究表明,这可以通过以下方式完成:
我正在考虑分页,但我还没弄清楚它是怎么回事 用于垂直表格。如果你们中的任何一个人遇到同样的问题或者有一些有意义的建议,我希望如此!任何帮助表示赞赏!
答案 0 :(得分:0)
如果我理解你的问题,你想要一个包含所有用户信息的CSV文件,使用答案键作为列吗?
为什么不通过2个查询执行此操作?
首先,您可以在答案表中选择所有不同的键(select distinct keyword...
)
然后,使用连接循环创建查询结果:
$this->db->select('u.id, u.name, u.registered_on');
$this->db->from('users u');
foreach($keywords as $i_key => $s_keyword){
$this->db->join('answers_table at'.$i_key, 'at'.$i_key.'.user_id = u.id', 'left');
$this->db->select('at'.$i_key.'.value as '.$s_keyword);
}
$a_users = $this->db->get()->result();