簡體   English   中英

如何在 SQL 中執行子查詢

[英]How to do a sub-query in SQL

我的桌子看起來像這樣:

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 中使用INBETWEEN運算符來實現。

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 BYHAVING

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM