MySQL оставил объединение и группу, не возвращая все результаты в левой таблице

У меня есть следующие таблицы:

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 полностью отсутствует. Я хочу убедиться, что все вопросы возвращены. Что я делаю неправильно?

1

Решение

Вы должны изменить

$this->db->group_by('extra_examples.question');

в

$this->db->group_by('extra_questions.id');

так как extra_examples.question NULL для вопроса 4.

0

Другие решения

Ваша группа должна быть на extra_questions.id вместо extra_examples.quesion

1

По вопросам рекламы [email protected]