[英]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.