如何获取带有外键的表的倍数值?

时间:2018-10-17 10:38:37

标签: sql pdo

如何让一个老师的所有学生,每个学生有一个老师,每个老师有很多学生,我正在使用此SQL请求,每个老师只有一个学生,您能帮忙吗

   $data = '';
          $sth = Model::connect()->prepare('SELECT a.name ,
          b.nameTeacher 
          FROM table1 b , table2 a
         WHERE a.id_teacher = b.id GROUP BY b.id');
               $sth->execute();
                 $data = $sth->fetchAll();


        return $data;

表1

  

老师:

     

Id

     

nameTeacher

表2

  

学生:

     

Id

     

名称

     

Id_teacher

3 个答案:

答案 0 :(得分:0)

删除GROUP BY,并学习使用正确,明确的标准 JOIN语法:

SELECT a.name, b.nameTeacher 
FROM table1 b JOIN
     table2 a
     ON a.id_teacher = b.id ;

答案 1 :(得分:0)

这将起作用:

select a.name,b.nameTeacher from students a ,teacher b
where a.Id_teacher=b.Id 

答案 2 :(得分:0)

SELECT b.nameTeacher, count(a.name) as numberOfStudents
      FROM table1 b , table2 a
     WHERE a.id_teacher = b.id GROUP BY b.id

或:

 SELECT a.Id, a.name
      FROM table1 b , table2 a
     WHERE a.id_teacher = b.id and (b.id = [input ID] or b.nameTeacher = [input name]
相关问题