В настоящее время у меня есть этот очень сложный запрос, который я зацикливаю, и я получаю что-то вроде этого:
Список вызовов:
TEAM A
- Challenge 1
TEAM A
- Challenge 4
TEAM A
- Challege 6
И я хочу изменить что-то вроде:
TEAM A
- Challenge 1
- Challenge 4
- Challenge 6
Мой вопрос таков: поскольку запрос очень сложный, возможно, я мог бы сделать это внутри цикла, но, если это так, как мы можем достичь чего-то подобного?
Могу ли я задать пример случая, чтобы я мог использовать его для решения этой проблемы?
Большое спасибо, MEM
ОБНОВЛЕНИЕ: Запрос является чем-токак это: Переведено:
public function listachallengesPendentes()
{
$select = $this->getAdapter()->select();
$select->from(array("e"=>"teams"),array('name'));
$select->join(array("de"=>"challengeperteam"),"e.cod_team = de.cod_teamFk",array());
$select->join(array("d"=>"challenges"),"d.cod_challenge = de.cod_challengeFk",array('title'));
$select->columns(array("e.cod_team"
,"name_team"=>"e.name"
,"d.cod_challenge"
,"name_challenge"=>"d.title"
,"d.details"
,"d.score"
,"category"=>"d.cod_categoryFk"
,"de.proof"
,"de.date_concluded"
,"de.cod_challenge_team"
));
$select->where("de.status = 0");
$select->order(array('e.cod_team DESC', 'de.cod_challenge_team DESC'));
return $this->getAdapter()->fetchAll($select);
}
Так что мне нужно добавить отдельную часть: s: D?
Foreach на самом деле довольно простой:
foreach ($challenges as $d){
//display the name:
echo $d['name_team'];
...
}
ОБНОВЛЕНИЕ 2 Чистый запрос (не проверен):
SELECT e.name
,d.cod_team
,d.cod_challenge
,d.title
,d.details
,d.score
,de.proof
,de.date_concluded
,de.cod_challenge_team
FROM teams e
INNER JOIN challengeperteam de ON de.cod_teamFk = e.cod_team
INNER JOIN challenges d ON d.cod_challenge = de.cod_challengeFk
WHERE de.status = 0
ORDER BY e.cod_team DESC, de.cod_challenge_team DESC;