加入多个表格

时间:2014-07-05 11:32:57

标签: mysql

我有三个表professorstudentpro_stu,其中pro_stu包含professorstudent表之间的关系。

教授(PID,PNAME)。

学生(SID,SNAME)。

PRO_STU (PSID,PID,SID)。

我想要所有学生从所有教授那里学到的学生记录。如果您需要进一步的信息,我会给出。我知道我必须使用join但是如何使用它我不知道。感谢。

  

我想要所有教授学习的名字是哈桑的学生id = 11。

我尝试了以下查询,但没有运气

SELECT *
FROM student
INNER JOIN pro_stu ON pro_stu.sid=student.sid
INNER JOIN professor ON professor.pid = pro_stu.pid

SQL Fiddle

1 个答案:

答案 0 :(得分:2)

我相信这就是你要找的东西:

SELECT SID, SNAME, count(DISTINCT PID) AS `c` FROM PRO_STU 
INNER JOIN Student USING (SID)
GROUP BY SID, SNAME
HAVING `c` = (SELECT count(*) FROM Professor)