2015-07-19 187 views
1

我有兩個表:Table ATable BSQL查詢 - 語法錯誤

他們都有Emp-ID作爲關鍵字段。

Table A有10K條獨特的記錄EMP-IDs

Table B有2k個唯一EMP-IDs記錄。

EMP-IDs中的一些Table B也存在於Table A中。

我需要寫一個查詢,列出所有記錄Table A和記錄Table BEMP-ID確實not exist in Table A。我需要選擇Table B記錄其EMP_TYPE = 'Y'

select EMP_ID, EMP_TYPE 
from Table A 
where EMP_ID not in(
select EMP_ID from Table B 
where EMP_TYPE='Y' and EMP_ID in(
select EMP_ID,EMP_TYPE from Table B 
union all 
select EMP_ID,EMP_TYPE from Table A 
) 

回答

1

使用union allnot exists

select emp_id, emp_type 
from a 
union all 
select emp_id, emp_type 
from b 
where emp_type = 'Y' and 
     not exists (select 1 from a where a.emp_id = b.emp_id); 
+0

PL看到我的查詢:從表1結果只記錄計數: 有在EMP2表中的記錄數我手動驗證,需要添加到EMP1表的計數。 選擇EMP_ID,從EMP1 UNION ALL 選擇EMP_ID,EMP_TYPE EMP_TYPE從EMP2 其中EMP_TYPE = 'Y' 和 不存在(來自EMP1選擇EMP1.EMP_ID,EMP2 其中EMP1.EMP_ID = EMP2.EMP_ID) – Fortune

+0

@財富。 。 。您評論中的查詢不是我答案中的查詢。首先,它在'FROM'子句中有一個逗號,我永遠不會擁有這個逗號。 –