как получить кратные значения таблицы с внешним ключом? - PullRequest
0 голосов
/ 17 октября 2018

как получить всех учеников учителя, у каждого ученика есть один учитель, и у каждого учителя много учеников, я использую этот запрос 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

Преподаватель:

Идентификатор

nameTeacher

Таблица 2

Студенты:

Id

Имя

Id_teacher

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

это будет работать:

select a.name,b.nameTeacher from students a ,teacher b
where a.Id_teacher=b.Id 
0 голосов
/ 17 октября 2018
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]
0 голосов
/ 17 октября 2018

Удалите GROUP BY и научитесь использовать правильный, явный, стандартный JOIN синтаксис:

SELECT a.name, b.nameTeacher 
FROM table1 b JOIN
     table2 a
     ON a.id_teacher = b.id ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...