2014-03-28 22 views
0

我需要帮助拧一个查询,这将拉动一个条目,其中有很多。 老师可以选择任何科目教学,学生可以选择任何教学科目。 需要找到一位选择教学的教师,以选择同一个学生选择的科目组合。找到有相同的条目有很多

Table Student 

id name 
1 x 
2 y 

Table student_Subjects 

id subject_id student_id 
1 1   1 
2 2   1 
3 1   2 

Teacher 

id name 
1 tx 
2 ty 

Table teacher_subjects 

id subject_id teacher_id 
1 1   2 
2 2   2 
3 1   1 

Subject 

id name 
1 English 
2 Maths 

现在需要找一位老师选择教同一科目作为学生x。

+0

这是什么?尝试SQLFiddle。 – Raptor

+0

这与Java有什么关系? – JonK

+0

我在java中这样做,我现在将它删除。 – nshastri

回答

0

试试这个

SELECT GROUP_CONCAT(subject_id ORDER BY subject_id) as teacher_concat ,teacher_id 
     FROM teacher_subjects 
     GROUP BY teacher_id 
     HAVING teacher_concat IN 
        (SELECT group_concat(subject_id ORDER BY subject_id) 
        FROM student_subjects GROUP BY student_id) 
+0

谢谢@rakeshjain。我必须添加student_id = idvalue来获得我的答案。 – nshastri

+0

我可以得到科目名称还有这个结果。 @rakeshjain – nshastri