php - 无法从 2 个表创建所需的数组

标签 php mysql codeigniter

我有 3 个表,如下所示

学生

id  student_name
1      S1
2      S2
3      S3
4      S4

老师

id    teacher_name
1       T1
2       T2
3       T3

id   student_id   teacher_id
1       1             1
2       2             1

我希望结果数组是这样的

Array
(
    [0] => stdClass Object
        (
            [student_id] => 1
            [teacher_id] => 1
        )

    [1] => stdClass Object
        (
            [student_id] => 2
            [teacher_id] => 1
        )

    [2] => stdClass Object
        (
            [student_id] => 3
            [teacher_id] =>
        )
    [3] => stdClass Object
        (
            [student_id] => 4
            [teacher_id] =>
        )
)

我正在使用的查询是

$query = $this->db->select('*')
  ->from('class')
  ->join('student', 'student.id = class.student_id', 'left')
  ->join('teacher', 'teacher.id = class.teacher_id', 'left')
  ->get();

我在数组中得到的结果是

Array
(
    [0] => stdClass Object
        (
            [student_id] => 1
            [teacher_id] => 1
        )

    [1] => stdClass Object
        (
            [student_id] => 2
            [teacher_id] => 1
        )
)

任何人都可以告诉我需要做哪些更改才能获得所需的结果

最佳答案

您应该将学生和教师表加入到类(class)表中。但我没有对此进行测试。

$query = $this->db->select('student.id, teacher.id')
  ->from('student')
  ->join('class', 'class.student_id = student.id', 'left')
  ->join('teacher', 'teacher.id = class.teacher_id', 'left')
  ->get();

关于php - 无法从 2 个表创建所需的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49552946/

相关文章:

mysql 过程没有返回正确的值

php - Codeigniter - 从许多表中获取数据

php - 如何显示来自 TinyMCE 的输入?

php - 从 mySQL 表中识别作业代码的更改

php - 如何使用 php 和 mysql 执行多个 AND 运算符和 OR 运算符?

mysql - 在多个连接语句中计数

php - Codeigniter - 面临创建多个缩略图的问题

php - 如何将sql查询结果转换为Json对象{"timestamp": value}

php - 如何使用 urllib 对 url 进行编码

PHP explode 字符串与数组?