繁体   English   中英

多对多关系中的SQL查询恰好具有匹配条件的一条记录

[英]SQL Query in MANY- MANY RELATIONSHIP exactly one record with matching criteria

我有3个具有很多很多关系的关系,例如:

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”课程的学生,而他不应再有其他课程。

提前致谢

使用查询:

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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM