簡體   English   中英

SQL-基於同一表中的多個條目進行選擇?

[英]SQL - Selecting based on multiple entries in same table?

如果我的表是這樣設置的:

Apply: studentID, cName

Student: studentID, sName

如何從“學生”中列出“學生ID”和“ sName”,其中“應用”中有以下條目:

Apply.studentID = Student.studentID AND Apply.cName = "College1"

AND

Apply.studentID = Student.studentID AND Apply.cName = "College2"

最終,我想做的是用cNames“ College1”和“ College2”列出同時申請這兩家大學的學生。

通過執行兩個子查詢,一個獲得適用於College1的StudentID,另一個獲得有關College2的查詢,您可以確保從Student返回的學生具有兩個子查詢結果集中都存在的studentID。

SELECT sName
FROM Student 
WHERE studentID IN (
    SELECT DISTINCT studentID FROM Apply WHERE cName='College1'
)
AND studentID IN (
    SELECT DISTINCT studentID FROM Apply WHERE cName='College2'
)

您可以檢查兩個條件是否存在:

select * from Student s
where exists 
(select * from Apply a where a.StudentId = s.StudentId and a.cName = 'College1') and
exists 
(select * from Apply a where a.StudentId = s.StudentId and a.cName = 'College2');

您可以使用CTE來避免重復代碼。

with
    cte
as
(
    select
        studentID
    from
        [Apply]
    where
        cName   in('College1', 'College2')
)
select
    s.sName
from
    cte
inner join
    Student s
on
    cte.studentID = s.studentID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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