mysql - sql中的交集

标签 mysql sql

我必须在 SQL 中找到 2 个查询中的交集,并且我正在使用 INTERSECTION,但是当我在命令上尝试它时,当我知道有一行属于该类别时,查询不会显示任何结果。 问题如下: 查找同时修读 CIS 类(class)和历史类(class)的学生的全名 这是我的代码:

SELECT student.sid
FROM student
JOIN registration 
ON registration.sid = student.sid
JOIN course 
ON registration.crn = course.crn
WHERE dept= "CIS" 

INTERSECT

SELECT student.sid 
FROM student
JOIN registration 
ON registration.sid = student.sid
JOIN course 
ON registration.crn = course.crn
WHERE dept = "HIS";

最佳答案

这有效

SELECT fName, lName
FROM student
JOIN registration 
ON registration.sid = student.sid
JOIN course 
ON registration.crn = course.crn
WHERE dept= "CIS" 

AND student.sid IN

(SELECT student.sid 
FROM student
JOIN registration 
ON registration.sid = student.sid
JOIN course 
ON registration.crn = course.crn
WHERE dept = "HIS");

关于mysql - sql中的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59055020/

相关文章:

mysql - 具有父类(super class)型表的其他 JOIN 结果的 JOIN 表

php - 无法在服务器上保存文件

php - While 循环中的 While 循环 - 我应该使用 Foreach 循环吗?

sql - 列别名被截断

sql - 使用一条插入语句在多个分区中插入数据

PHP 执行中断,没有任何通知

mysql - Mysql 语法错误

mysql - SQL - 从一行中获取特定值然后使用该值

sql - 当必须根据条件对记录进行分组时如何选择最多 x 行

java - 最常用标签的 NamedQuery