在mysql中获取第三个表的数据


Get data of 3rd table in mysql

我有3个表:events、students和parent_student_relation。

事件

id | class_id | title
----------------------
1  | 16       | ABC
2  | 17       | JKL
3  | 18       | XYZ

学生

id | class_id | name
----------------------
5  | 18       | StudentName1
6  | 17       | StudentName2
7  | 16       | StudentName3

parent_student_relation

student_id | parent_id
----------------------
        4  | 10
        5  | 10
        6  | 11
        7  | 11

现在我想从events获得数据,在这里我传递parent_id = 10,然后获得以下输出。

输出

id | class_id | title
----------------------
3  | 18       | XYZ

我通过parent_id = 11,然后得到下面的输出。

输出

id | class_id | title
----------------------
1  | 16       | ABC
2  | 17       | JKL

我尝试了以下代码:

$q_student = "SELECT student_id FROM parent_student_relation WHERE parent_id = " . $parent_id;
$q_class = "SELECT class_id FROM students WHERE id IN($q_student) GROUP BY class_id";
$q = "SELECT * FROM events WHERE class_id IN($q_class)";

所以我可以在$query = mysql_query($q); 中获得完美的输出

但我只想在一个联接查询中进行所有联接。那么怎样才能做到呢??或者可能与否?

尝试这个

$query="SELECT * 
  FROM parent_student_relation AS a 
  JOIN students AS b 
  ON a.student_id = b.id 
  JOIN events AS c 
  ON b.class_id = c.class_id 
  WHERE a.parent_id = " . $parent_id;

使用此:

$query="select e.id,e.class_id,e.title,s.id from event e 
           inner join student s on e.class_id=s.class_id
           inner join parent_student_relation p on s.id=p.student_id
            where p.parent_id=$parent_id";