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/