我有三个表professor
,student
和pro_stu
,其中pro_stu
包含professor
和student
表之间的关系。
教授(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
答案 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)