0
請別人解釋爲什麼存在差異,而不是在
select count(*) from employees where employee_id not in (select manager_id from employees)
返回0時,顯然,還有一些員工誰是管理者也
。
我正在使用HR模式。
請別人解釋爲什麼存在差異,而不是在
select count(*) from employees where employee_id not in (select manager_id from employees)
返回0時,顯然,還有一些員工誰是管理者也
。
我正在使用HR模式。
基於此,它看起來像你試圖鏈接employee_id
與manager_id
,這可能是不同的。
您可以使用其他一些標準來標識employees表中的管理員,以查詢經理的employee_id值。
SELECT COUNT(*)
FROM employees
WHERE employee_id NOT IN
(
SELECT employee_id
FROM employees
WHERE type = 'manager' -- or however you differentiate
-- employees and managers
)
基於查詢我會建議你使用 NOT EXISTS,因爲它給布爾結果隊內最高的性能。
SELECT COUNT(*)
FROM employees
WHERE NOT EXISTS
(SELECT employee_id
FROM employees
WHERE type = 'manager' -- or however you differentiate
-- employees and managers
);
'manager_id'和'employee_id'是兩個完全不同的鍵,它們很可能有不同的值。 –
在你的表(首席執行官?)中有一個沒有manager_id的僱員,所以你的子查詢包含一個NULL值,這會導致0.這是爲什麼:http://jonathanlewis.wordpress.com/2007/02/25/不在/ –
@RobvanWijk這是一個有效的點! –