2014-05-24 2 views
0

내가 많은과 같은 3가 일치하는 기준에 정확히 하나 명의 기록 - 많은 관계 로 :SQL 쿼리에 많은 - 많은 관계

TABLE 1 : select * from student; 

| id | name | 
| 1 | sone | 
| 2 | stwo | 
| 3 | sthree | 
| 4 | sfour | 
| 6 | ssix | 


TABLE 2 : select * from course; 


| id | name | 
| 100 | CSE | 
| 101 | ECE | 
| 102 | ITI | 

RELATION_SHIP TABLE : select * from student_course 
| id | stu_id | cou_id | 
| 1 |  1 | 101 | 
| 2 |  2 | 102 | 
| 3 |  2 | 100 | 
| 4 |  3 | 100 | 
| 5 |  3 | 101 | 
| 6 |  1 | 101 | 
| 1 |  6 | 101 | 

내가 정확히 하나 개의 과정 '으로 학생을 선택하는 쿼리를 작성해야 CSE '와 다른 코스를 가져서는 안됩니다. 사전에

감사

답변

0

를 사용하여 쿼리 :

SELECT 
    sc.`stu_id`, 
    COUNT(sc.`cou_id`) AS cnt 
FROM 
    student_course sc 
GROUP BY sc.`stu_id` 
HAVING cnt = 1 
    AND GROUP_CONCAT(cou_id) LIKE 
    (SELECT 
    id 
    FROM 
    course 
    WHERE NAME = 'CSE')