mysql - SQL查询来自满足条件的两个表

标签 mysql sql

Table 1 name: Student
Name      Department
Alex         CSE
Bob          EEE
Briyan       ME
John         CSE
James        ETE
Mike         CE

Table 2 name: Program
Department    Semester
   CSE         Summer
   CSE         Winter
   EEE         Summer
   ETE         Summer
   ME          Winter
   CE          Summer
   CE          Winter

打印姓名和学期的 SQL 查询是什么,其中每个学生的部门只有一种类型的学期? (服务器是mysql)

SQL Query Result should be like this:
Name     Semester
Bob       Summer
Briyan    Winter
James     Summer

在这里,CSE 和 CE 都有夏季和冬季学期。所以亚历克斯、约翰和迈克不包括在内。

到目前为止我已经尝试过了:

SELECT Student.Name,
     Program.Semester
FROM Student
JOIN Program
    ON Program.Department = Student.Department
WHERE ....

最佳答案

您可以在子查询上使用 In 子句,其中计算部门只有一个条目

  select a.Name, b.Departmnet 
  from Student a
  inner join program b on a.Department = b.Department and b.Department In (
  select Department from Program
  group by Department having count(*)=1 
  ) 

关于mysql - SQL查询来自满足条件的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386822/

相关文章:

java - Selenium webdriver 线程 sleep 未按预期工作

mysql - 当函数中涉及非数字值时,sql返回空字符串?

php - 创建 sql 语句时遇到问题 select 语句引用同一个表两次

mysql - 关于 SQL 中时间戳的思考,比较当前年份

sql - mysql 行到列,文本类型

sql - Rails 4 中已弃用的计数

mysql - SQL 中有两个不同的顺序和限制语句

mysql - 按顺序从数据库中读取消息

mysql - 获取列中允许的最大长度,mysql

mysql - 如何编写日期值适合一个范围内和另一个范围外的连接查询