mysql - 嵌套 JOIN 在 MySQL 中查找具有多个 WHERE 条件的记录

标签 mysql sql

Using this solution ,我学会了如何嵌套查询,但我发现 WHERE 语句被忽略了?

我只想返回在定量表中找到指定的 4 个 QualID 的 EmpID。看起来这会返回 EmpID,其中任何这些值都与 EmpID 匹配。

员工表: EmpID、EmpName

资格表: EmpID、QualID

SELECT EmpID, QualID
FROM
(
   SELECT Employee.EmpID as EmpID, HTG_TechQual.QualID as QualID 
   FROM Employee Employee 
   INNER JOIN Qualifications Qualifications ON Qualifications.EmpID = Employee.EmpID
   WHERE Qualifications.QualID IN ('3', '34', '35', '37')
 ) X
GROUP BY EmpID DESC

最佳答案

使用 HAVING 子句仅选择具有全部 4 个 QualID 的组

SELECT e.EmpID
FROM Employee e 
INNER JOIN Qualifications q ON q.EmpID = e.EmpID
WHERE q.QualID IN ('3', '34', '35', '37')
GROUP BY e.EmpID
HAVING count(distinct q.QualID) = 4

关于mysql - 嵌套 JOIN 在 MySQL 中查找具有多个 WHERE 条件的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22870271/

相关文章:

php - 用于显示数据的 Mysql 查询

mysql - Wampserver数据恢复

SQL Server 2012 - 根据另一列的值重置运行总计

mysql - 如何连接两个表来查找两个条件?

MySQL 按除一列以外的所有列分组

php - 读取初始通信数据包时与 MySQL 服务器失去连接,系统错误 : 111

php - 如何在置顶显示在线用户,在置顶显示离线用户呢?

php - Android 设备无法连接到本地主机

mysql - ID 按日期和用户名递增

使用 IF EXISTS 的 VBA 中的 SQL 到 Excel 表提示 "Invalid SQL statement"