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