如何在同一视图中基于相等值排除行数据?
How to exclude row data based on equal values in same view?
给个简单的看法
reports.uid,
reports.mail,
reports.jobcode,
reports.jobcodedescr,
reports.regionname,
reports.supervisorid,
reports.supemail
FROM
reports_accredit_fscore_allmanagers
如何排除某行的 uid 不在 supervisorid 列表中的行?我尝试了几种上下文,但我一直在获取整个列表。现在,该视图有 440 名员工和 113 名主管。所以我应该得到的列表应该是 327 但没有看到它。
有几种方法可以做到这一点。这是使用 not exists
的一个选项:
select uid, mail, jobcode, jobcodedescr, regionname, supervisorid, supemail
from reports_accredit_fscore_allmanagers r
where not exists (
select 1
from reports_accredit_fscore_allmanagers r2
where r.uid = r2.supervisorid
)
这是一个 outer join / null
检查:
select r.uid, r.mail, r.jobcode, r.jobcodedescr,
r.regionname, r.supervisorid, r.supemail
from reports_accredit_fscore_allmanagers r
left join reports_accredit_fscore_allmanagers r2 on r.uid = r2.supervisorid
where r2.supervisorid is null
给个简单的看法
reports.uid,
reports.mail,
reports.jobcode,
reports.jobcodedescr,
reports.regionname,
reports.supervisorid,
reports.supemail
FROM
reports_accredit_fscore_allmanagers
如何排除某行的 uid 不在 supervisorid 列表中的行?我尝试了几种上下文,但我一直在获取整个列表。现在,该视图有 440 名员工和 113 名主管。所以我应该得到的列表应该是 327 但没有看到它。
有几种方法可以做到这一点。这是使用 not exists
的一个选项:
select uid, mail, jobcode, jobcodedescr, regionname, supervisorid, supemail
from reports_accredit_fscore_allmanagers r
where not exists (
select 1
from reports_accredit_fscore_allmanagers r2
where r.uid = r2.supervisorid
)
这是一个 outer join / null
检查:
select r.uid, r.mail, r.jobcode, r.jobcodedescr,
r.regionname, r.supervisorid, r.supemail
from reports_accredit_fscore_allmanagers r
left join reports_accredit_fscore_allmanagers r2 on r.uid = r2.supervisorid
where r2.supervisorid is null