2015-07-19 199 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'子句中有一个逗号,我永远不会拥有这个逗号。 –