2017-07-31 59 views
0

我有兩個表。甲&乙oracle在select語句中減去

ID Name 
1  A 
2  B 
3  C 
4  D 

ID Sal 
1 400 
2 300 
3 500 

現在我需要取從第一表中的記錄(包括ID,名稱),這些SAL不第二表指定。使用子查詢我得到了這個。但我需要解決它而不使用子查詢。 所以我嘗試用minus操作符。但是我現在正在獲得第一張桌子。

select id,name from A 
minus 
select id,to_char(null) from B; 

我在做什麼錯?

回答

0

,但沒有使用子查詢,我需要解決。

使用該使用CTE:

with tbl(id) as (select id from B) 
select id,name 
from A 
inner join tbl b 
on a.id <> b.id 
+0

謝謝你的寶貴答覆。我需要知道如何使用'MINUS'實現它。 – Kiran

+0

'Minus'子句不能用於您的案例,因爲它在您使用的兩個查詢具有相同數量的列和數據類型時起作用。在此查看關於MINUS.https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries004.htm的更多信息 – XING

+0

Link for Thorn – Kiran

0

您可以用負內側條款

with ids as (
select id 
from A 
minus 
select id 
from B 
) select A.id ,A.name 
from A join ids on ids.userid=A.userid; 
+0

其工作。 thnks – Kiran

+0

請檢查https://stackoverflow.com/help/someone-answers – user7294900