[英]How to do a sub-query in SQL
我的桌子看起来像这样:
如果他们有 SpecialityIdFK = 1 AND SpecialityIdFK= 2,我想检索所有 PractitionerIdFK。我尝试了以下操作,但似乎不起作用。
SELECT PractitionerSpecialities.PractitionerIdFK
FROM PractitionerSpecialities
WHERE PractitionerSpecialities.SpecialityIdFK IN (
SELECT PractitionerSpecialities.SpecialityIdFK
FROM PractitionerSpecialities
WHERE PractitionerSpecialities.SpecialityIdFK = 1
AND PractitionerSpecialities.SpecialityIdFK = 2
)
它可以通过在 SQL 中使用IN和BETWEEN运算符来实现。
SELECT PractitionerSpecialities.PractitionerIdFK
FROM PractitionerSpecialities
WHERE PractitionerSpecialities.SpecialityIdFK in (1,2)
-- You can BETWEEN Clause as well ..
SELECT PractitionerSpecialities.PractitionerIdFK
FROM PractitionerSpecialities
WHERE PractitionerSpecialities.SpecialityIdFK BETWEEN 1 AND 2
在子查询中使用 OR 运算符而不是 AND 。
您可以使用GROUP BY
和HAVING
:
SELECT ps.PractitionerIdFK
FROM PractitionerSpecialities ps
WHERE ps.SpecialityIdFK IN (1, 2)
GROUP BY ps.PractitionerIdFK
HAVING COUNT(*) = 2; -- the size of the comparison list
这假设PractitionerSpecialities
中没有重复项。 如果这是可能的,那么使用HAVING COUNT(DISTINCT ps.SpecialityIdFK) = 2
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.