SQL查询用户在表中有一条记录但没有另一条[关闭]
Posted
技术标签:
【中文标题】SQL查询用户在表中有一条记录但没有另一条[关闭]【英文标题】:SQL Query User has one record in the table but not another one [closed] 【发布时间】:2013-09-19 13:48:04 【问题描述】:我有一个包含员工类型代码的表,我正在尝试返回所有没有特定 LeaveType 的用户
示例:
EmployeeNO LeaveType
---------------------
1111 Personal
1111 Vacation
1111 Sick Bank
2222 Personal
2222 Vacation
3333 Personal
3333 Vacation
所以我想查询所有用户并返回Sick Bank
中的用户列表和不在的用户列表
【问题讨论】:
【参考方案1】:获得病假银行
SELECT * FROM table1 WHERE leaveType = 'Sick Bank'
获得非病假银行
SELECT * FROM table1 WHERE leaveType <> 'Sick Bank'
【讨论】:
非 Sick Bank 查询将错误地返回用户 1111 两次,即使它有 Sick Bank 行。 我想这张桌子有员工休假的日子,因此,尽管员工去过两次,但应该不止一次返回。 但如果重点是只提取不同的行,他可以使用 SELECT DISTINCT【参考方案2】:让员工获得特定休假类型是困难的
select employeeNO from table1 where leaveType = 'Sick Bank'
如果员工有多个休假类型,则使用 的查询可能会为员工返回多行,即使他们确实有“病假银行”行。
select employeeNO from table1
where employeeNo not in (select employeeNO from table1 where leaveType = 'Sick Bank')
【讨论】:
我假设这将是一个相对较大的表,因此使用 where Not in 将是,其中 N 是行数,(N * N) - N 比较。 列出了所有没有病假银行代码的员工。谢谢以上是关于SQL查询用户在表中有一条记录但没有另一条[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
VBA Access SQL SELECT查询只返回一条记录