我想列出不是经理的员工名单......
如果您有更好的查询,请查看以下两个查询...
查询1:
SELECT Empno, Ename, Job, Sal
FROM Emp
WHERE Empno NOT IN (SELECT NVL(MGR,0) FROM Emp)
查询2:
SELECT Empno, Ename, Job, Sal
FROM Emp
WHERE Empno NOT IN (SELECT DISTINCT MGR FROM Emp WHERE MGR IS NOT NULL)
答案 0 :(得分:3)
这可能会更快,具体取决于索引的字段:
select x.empno, x.ename, x.job, x.sal
from emp x
left join emp y
on x.empno = y.mgr
where y.mgr is null
使用具有相同表格的外部联接并过滤行中empno永远不会作为表格的mgr列中的值显示的行。
答案 1 :(得分:1)
使用oracle特定功能:
select Empno, Ename, Job, Sal from Emp
where CONNECT_BY_ISLEAF = 1
start with MGR is null
connect by prior Empno = MGR;
有关如何使用它的示例,请参阅http://sqlfiddle.com/#!4/858e0/3
但如果没有经理层级更容易:
SELECT Empno, Ename, Job, Sal FROM Emp WHERE MGR IS NOT NULL
答案 2 :(得分:0)
从emp a中选择* 哪里不存在 (从emp中选择1,其中manager_id = a.emp_id);
以上sql将找到所有不是经理的员工,并且存在具有更好性能但不在
中的功能答案 3 :(得分:0)
检查以下内容:
SELECT E.LAST_NAME,E.EMPLOYEE_ID FROM EMPLOYEES EWHERE EMPLOYEE_ID not in
(SELECT MANAGER_ID FROM EMPLOYEES where MANAGER_ID is not null)
答案 4 :(得分:0)
SELECT * FROM employees
WHERE id <> managerid
答案 5 :(得分:0)
这是涵盖所有情况的最佳解决方案
select e.name
from employees as e
left join employees as m
on e.id = m.managerId
where m.managerId is null
答案 6 :(得分:0)
尝试此查询将起作用
选择Empno,Ename,Job,Sal 来自Emp 工作在哪里!='经理'
个
选择Empno,Ename,Job,Sal 来自Emp 工作不像“经理”的地方
答案 7 :(得分:0)
let audio = new Audio()
class AudioContainer extends Component {
constructor (props) {
super(props);
this.state = {
images: [],
index: 0,
checkedItems: new Map(),
correct: false,
isPlaying: false,
error: false
};
}
onPlayHandler = () => {
audio.src = this.props.data[this.state.index].audio
audio.play();
this.setState({
isPlaying: true
});
};
onPauseHandler = () => {
audio.src = this.props.data[this.state.index].audio
//let aud = new Audio(this.props.data[this.state.index].audio);
audio.pause();
//aud.setAttribute("ref", `${this.myRef}`);
this.setState({
isPlaying: false
});
//this.refs.audio.pause();
//x.pause();
//console.log(aud)
};