1

我非常请求你的帮助。请帮我。

我有 2 张桌子,如下所示:

第一表

field1  field2  field3  field4    
======  ======  ======  ======    
A       B       C       D    
A       B       C       D    
A       A       C       B   
A       A       C       B

second_table

field1  field2  field3  field4    
======  ======  ======  ======       
A       B       C       D    
A       B       C       D    
A       A       C       B   
A       A       C       B

我需要准备一个sql查询,如下所示:

  • 从 中获取first_table不存在于 中的记录second_table
  • 此外,查询基于来自 2 列(如 field1 和 field2)的不同记录的组合。

例如:

select first_table.field1, first_table.field2,
       first_table.field3, first_table.field4
from
first_table
where
distinct (first_table.field1 NOT IN second_table.field1 AND first_table.field2 
    NOT IN second_table.field2)

但是上面的查询不起作用。我怎样才能做到这一点?

4

3 回答 3

2

你是这个意思吗?

select first_table.field1, first_table.field2,
       first_table.field3, first_table.field4
from first_table
where not exists (
    select 1 from second_table
    where second_table.field1 = first_table.field1
    and second_table.field2 = first_table.field2
)

这假定字段不允许为空。如果需要,易于详细说明处理 null ,但执行此操作的首选方式因数据库而异。

于 2012-05-31T02:24:25.263 回答
0

您的问题尚不清楚,但我向您提出了两个问题,两个问题都运行良好,我认为其中一个问题肯定会满足您的要求。

1.

select first_table.field1,first_table.field2,first_table.field3,first_table.field4
     from      first_table
     join second_table
     on first_table.field1 not like second_table.field1 and first_table.field2 not like second_table.field2;

2.

select first_table.field1,first_table.field2,first_table.field3,first_table.field4 from first_table
 join second_table
 on (first_table.field1  like second_table.field1 and first_table.field2 like          second_table.field2)
   group by first_table.field1,first_table.field2,first_table.field3,first_table.field;

我认为其中之一会帮助你。

于 2012-05-31T05:20:26.600 回答
0

此查询将在 first_table 中查找在 second_table 中没有相应记录的记录。尝试此操作后,请具体说明您需要什么,以便我们为您提供帮助。

select t1.field1, t1.field2, t1.field3, t1.field4 from first_table as t1
left outer join second_table as t2 on t1.field1 = t2.field1 and t1.field2 = t2.field2
where t2.field1 is null and t2.field2 is null
于 2012-05-31T03:50:08.183 回答