У меня есть следующие таблицы:
extra_questions:
и extra_examples:
и я хочу объединить и объединить их так, чтобы я возвращал все вопросы, но внутри каждого вопроса я показываю выпадающий список, содержащий теги всех вопросов из extra_examples.
В настоящее время у меня есть это заявление (используя codeigniter / activerecord):
$this->db->select('extra_questions.*, GROUP_CONCAT(extra_examples.tag) as tag',FALSE);
$this->db->from('extra_questions');
$this->db->join('extra_examples','extra_questions.id = extra_examples.question','left outer');
$this->db->group_by('extra_examples.question');
$this->db->order_by('extra_questions.id');
$query = $this->db->get();
return $query->result_array();
который возвращается в виде $ вопросов. Но когда я перебираю $ вопросы:
<?php foreach ($questions as $i=>$questions_item): ?>
<?php print_r($questions_item['id']); print_r($questions_item['tag']); echo '<br/><br/>' ?>
<?php endforeach ?>
Я получаю некоторые странные результаты:
2flower,insect
3
Где бы я ожидал:
2-цветочное насекомое
3
4
Но 4 полностью отсутствует. Я хочу убедиться, что все вопросы возвращены. Что я делаю неправильно?
Вы должны изменить
$this->db->group_by('extra_examples.question');
в
$this->db->group_by('extra_questions.id');
так как extra_examples.question
NULL для вопроса 4.
Ваша группа должна быть на extra_questions.id вместо extra_examples.quesion