我有以下表格:
额外问题:
和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();
作为 $questions 返回。但是当我遍历 $questions 时:
<?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 完全不见了。我想确保返回所有问题。我做错了什么?
最佳答案
你的分组依据应该在 extra_questions.id 而不是 extra examples.question 上
关于php - mysql通过不返回左表中的所有结果来左连接和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32628321/