mysql查询在数组结果中形成特定的数组

时间:2013-09-17 10:05:58

标签: php mysql

我有一个表用户,其中包含普通用户详细信息字段作为名称,国家/地区,城市等。此外,在提交此表单时,我有一组关于用户对特定技术感兴趣的问题。 用户可以回答零,一个或多个答案。 我在user_answers表中使用column-id,user_id,question_id和answer保存这些答案。

user table structure
id - int - auto increment
name - varchar
country - varchar
city - varchar

user_answer table structure
id - int - auto increment
user_id - int
question_id - int
answer - varchar

现在我的任务是将所有用户导出到Excel工作表,并提供用户给出的答案。为此,我试图使用最小的sql查询获取给定答案的用户数据。数据应采用以下数组格式:

$data = Array ( [0] => Array ( [id] => 1 , [name] => abc , [city] => xyz , 
        answer => Array( [0] => Array ( [question_id] => 1 , [answer] => aaa)
                         [1] => Array ( [question_id] => 3 , [answer] => bbb)
                         [2] => Array ( [question_id] => 4 , [answer] => ccc)
                        ))
                [1] => Array ( [id] => 2 , [name] => def, [city] => zxy, 
        answer => Array( [0] => Array ( [question_id] => 1 , [answer] => vvv)
                         [1] => Array ( [question_id] => 2 , [answer] => bbb)
                        ))
                [2] => Array ( [id] => 3 , [name] => ghi, [city] => xyz , 
        answer => Array( [0] => Array ( [question_id] => 1 , [answer] => rrr)
                         [1] => Array ( [question_id] => 2 , [answer] => sss)
                         [2] => Array ( [question_id] => 3 , [answer] => ggg)
                        )) )

任何人都可以帮助我用最少的sql查询来实现这个结果。我有一个选项,首先找到所有用户,然后在foreach中使用另一个mysql查询,找到用户给出的对应于其user_id的答案,并推入上一个数组结果。但是在这种情况下,大量用户正在执行大量查询。所以任何人都可以建议任何更好的解决方案。

0 个答案:

没有答案