ฉันมีปัญหาในการสอบถามเพื่อรวมบันทึกจาก 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;