douju4278 2015-06-30 11:10
浏览 38
已采纳

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

I have 3 table : events,students and parent_student_relation.

events

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

students

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

Now i want to get data from events where i pass parent_id = 10 then get following output.

Output

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

And i pass parent_id = 11 then get following output.

Output

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

I tried with following code :

$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)";

So i can get perfect output in $query = mysql_query($q);

But I want to all in only one join query. So how can do it?? Or its possible or not?

  • 写回答

2条回答 默认 最新

  • doukeng7426 2015-06-30 11:16
    关注

    try this

    $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;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图