【发布时间】:2016-09-21 17:36:54
【问题描述】:
我遇到了如何查询以连接 3 个表中的记录并在屏幕上打印结果的问题。我提出了解决方案,但不利于速度,我一直在寻求更好的解决方案。我的桌子是:
测试表
id_test
testName
问题表
id_quest
id_test
question
答案表
id_answer
id_quest
answer
每个测试有 7 个问题,每个问题有 10 个答案。
如何在不使用 foreach 的情况下编写数据库查询以在屏幕上列出这些记录?
我做了这样的解决方案:
$this->db->select('id_test,testName,description,time,type,sum');
$this->db->where('id_test',$idTest);
$query['test'] = $this->db->get('tests')->result()[0];
$this->db->select('id_quest,inquiry');
$this->db->where('id_test',$idTest);
$query['questions'] = $this->db->get('questions')->result();
$i=0;
foreach ($query['questions'] as $question) {
$this->db->select('id_answer,response,value');
$this->db->where('id_quest',$question->id_quest);
$query['questions'][$i]->answer = $this->db->get('answer')->result();
$i++;
}
return $query;
【问题讨论】:
-
要么使用循环,要么为查询返回的内容写出循环中的每一行。
-
所以不可能用我已经写过的另一种方式来写?
-
是的,您可以使用 while,但必须使用循环。