2014-05-24 38 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')