Php 获取id列表中所有字段的值,而不在mysql查询中指定它们的id?
我有一个sql查询,从中可以得到链接到代理的所有答案的权重之和。当我指定一个代理id(例如,1)时,它对我有效 但我想知道Php 获取id列表中所有字段的值,而不在mysql查询中指定它们的id?,php,mysql,group-by,aggregate-functions,Php,Mysql,Group By,Aggregate Functions,我有一个sql查询,从中可以得到链接到代理的所有答案的权重之和。当我指定一个代理id(例如,1)时,它对我有效 但我想知道 在没有指定代理id的情况下,我是否可以得到与db中所有代理链接的所有答案我不知道如何使用zend 如果我有一个代理数组,并让它返回所有代理的所有权重,以数组形式返回特定问题的代理权重,那么sql查询是否可以循环 表的表结构 表代理的表结构 代理id//al代理id 1. 2. 三, 表答案的表结构 答案_id//要添加的所有答案id weigtage//分别对每个代理具
- 在没有指定代理id的情况下,我是否可以得到与db中所有代理链接的所有答案我不知道如何使用zend
- 如果我有一个代理数组,并让它返回所有代理的所有权重,以数组形式返回特定问题的代理权重,那么sql查询是否可以循环
- 我有20个随机代理id,我需要在mysql中对它们进行循环,并获得每个代理id的结果。目前,我正在寻找一名经纪人
此查询对单个代理的输出为
Array
(
[0] => Array
(
[SUM( weightage )] => 2
)
)
我希望输出是基于代理ID的,比如
Array
(
// agent id 1
[1] => Array
(
[SUM( weightage )] => 2
)
// agent id 2
[2] => Array
(
[SUM( weightage )] => -1
)
// agent id 3
[3] => Array
(
[SUM( weightage )] => 5
)
// agent id 4
[4] => Array
(
[SUM( weightage )] => 4
)
// agent id 5
[5] => Array
(
[SUM( weightage )] => 11
)
)
不知道你的计划,很难给你一个好的建议。了解更多信息的基本关键字是和 然后,您的查询应该如下所示:
SELECT cs.agent_id, SUM (a.weightage) AS sum_weightage
FROM customer_survey cs
JOIN faults f ON cs.fault_id = f.fault_id
JOIN response r ON r.cs_id = cs.cs_id
JOIN answer a ON a.a.answer_id ON r.answer_id
JOIN survey_question sq ON r.sq_id = sq.sq_id
WHERE sq.survey_id = 4 AND sq.question_id =28
GROUP BY cs.agent_id
输出将类似于:
array(
array('agent_id' => 1, 'sum_weightage' => 12),
array(...)
...
)
这并不完全是你想要的,但应该最接近你的期望。没有时间彻底审视它。然而,你所描述的那种情况通常表明你需要一个组。当你有时间的时候,你一定会回来。我只是想,这可以通过contrroller来完成,只需循环所有代理id,并将查询放入该循环中。并继续将结果添加到数组中。但如果一个查询能够做到这一点的话,情况会是这样的。我现在正在控制器上工作:)您可以在一个查询中实现什么-在一个查询中实现。从php跳转到mysql通常会大大降低程序的速度。如果您可以发布每个表的一些记录以及该数据的预期结果,这将非常有帮助:)请始终这样做,但是我正在处理的模块将只供管理员使用,因此页面加载问题不会令人烦恼。感谢我已经通过循环从controller解决了这个问题代理id通过sql查询,但页面上有点重,比如10秒。您对所有外键都设置了索引吗?它没有工作,出现了此错误#1064-您的sql语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在r.answer\u id JOIN survey\u question sq ON r.sq\u id=sq.sq\u id,其中sq.survey\u在第5行,我想我给了您一个正确方向的好提示(使用连接和分组方式)-现在是你自己站起来的时候了我不知道如何使用分组方式。是的,我知道我正在朝着这个方向前进。
array(
array('agent_id' => 1, 'sum_weightage' => 12),
array(...)
...
)