[英]Self join get records comparing data from same table
我有 2 張桌子SchoolMembers
和SchoolDetails
學校成員
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.