2017-01-09 13 views
0

我試圖返回沒有經理的分支。如何退還沒有經理的分行? (SQL)

Here are the tables

這是我的嘗試:

SELECT branchno, city FROM branch 
WHERE branchno IN 
(SELECT branchno FROM STAFF 
WHERE position <> 'Manager'); 

,並返回:

branchno | city 
----------+---------- 
B005  | London 
B007  | Aberdeen 
B003  | Glasgow 
(3 rows) 
+0

您的查詢將返回所有擁有非經理員工的分支機構。一旦查詢沒有返回正確的結果,您還試過了什麼? – dfundako

+1

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –

回答

1

您可以輕鬆地做到這一點使用not in

select * 
from branch 
where branchno not in (
    select branchno from staff 
    where position = 'Manager' 
); 
1

有很多方法,你可以使用如下所示的WHERE NOT EXISTS。順便說一句,你發佈的查詢應該也給你想要的結果(根據你的帖子標題)。你還在找什麼?

SELECT b.branchno, b.city 
FROM branch b 
WHERE NOT EXISTS 
(SELECT 1 FROM STAFF WHERE branchno = b.branchno 
AND position = 'Manager');