簡體   English   中英

自聯接獲取比較同一表中數據的記錄

[英]Self join get records comparing data from same table

我有 2 張桌子SchoolMembersSchoolDetails

學校成員

School  SchoolMember
KGB1    KGB1
KGB1    KGB2
KGB1    KGB3

和學校詳情

id  schoolMember  type            YearJoining   PeriodJoining
136 KGB1          Principal       2016          17001
137 KGB2          SubPrinciple    2016          17001
138 KGB1          SubPrinciple    2016          17001
139 KGB3          Teacher         2016          17004
140 KGB4          Teacher         2018          17004

我必須為所有擁有 SchoolDetails 類型的老師的學校獲得學校成員,這些老師有 Yearjoining 或在 Principle 之后加入的時期。

我不確定如何做到這一點,我嘗試使用自我加入但沒有運氣。

預期結果為 139 的周期大於本金。

139 KGB3    Teacher 2016    17004

嘗試以下查詢。

SELECT *
FROM SchoolMembers SM1
    INNER JOIN SchoolDetails SD1
        ON SD1.schoolMember = SM1.schoolMember AND SD1.type = 'teacher'
    INNER JOIN SchoolMembers SM2
        ON SM1.School = SM2.School
    INNER JOIN SchoolDetails SD2
        ON SD2.schoolMember = SM2.schoolMember AND SD2.type = 'Principal'
WHERE SD1.YearJoining > SD2.YearJoining
    OR SD1.PeriodJoining > SD2.PeriodJoining

請使用以下查詢,

select SD1.id,SM.schoolMember,SD1.type,SD1.YearJoining,SD1.PeriodJoining from 
SchoolMembers SM
inner join SchoolDetails SD1
on (SM1.schoolMember = SD.schoolMember)
inner join SchoolDetails SD2
on (SD1.id = SD2.id)
where (SD1.YearJoining > SD2.YearJoining) 
  or(SD1.PeriodJoining > SD2.PeriodJoining );

暫無
暫無

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

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