如何修改SQL查询:筛选与JONES同职位员工且排除JONES记录
修改SQL查询:排除JONES,仅显示同职位其他员工
原查询会返回所有和JONES职位相同的员工(包括JONES本人),要排除JONES的记录,只需在WHERE条件中添加额外过滤规则即可。
方法一:基于原查询直接修改
在原有条件后追加AND SNAME != 'JONES',就能过滤掉JONES的记录:
SELECT SNAME, JOB FROM STAFF WHERE JOB IN (SELECT JOB FROM STAFF WHERE SNAME = 'JONES') AND SNAME != 'JONES';
方法二:使用自连接实现
如果数据量较大,自连接的性能可能更优。通过关联表匹配JONES的职位,再筛选同职位且非JONES的员工:
SELECT s1.SNAME, s1.JOB FROM STAFF s1 INNER JOIN STAFF s2 ON s1.JOB = s2.JOB WHERE s2.SNAME = 'JONES' AND s1.SNAME != 'JONES';
两种方法最终都会返回仅包含HAYAT、CLARK的姓名与职位信息的结果。
内容的提问来源于stack exchange,提问作者user14729778
相关产品推荐
相关产品推荐

