0

我有 2 个表,这两个表的前两列是相同的,例如:Table_1 有 SSN 列和membershipId 列 Table_2 也有 SSN 和membershipId 列。它们的数据类型相同,但内容可能略有不同。Table_1 可能有 SSN 和membershipId 组合,它们尚未在Table_2 中。

我需要从 table_1 中选择记录,其中 SSN 和membershipIds 的组合尚未在 table_2 中。如何编写这个选择语句?我正在使用 Oracle 11g

因此,如果 table_1 具有 SSN = 111-123-2345 和membershipId = 00001234 的记录,则该记录不能存在于表2中。

4

2 回答 2

3

另一种可能性是:

select * 
from Table_1 t1
where not exists 
  (
   select null
   from Table_2 t2
   where t2.SSN = t1.SSN 
     and t2.membershipId = t1.membershipId 
  )

在 Oracle 中,您也可以直接使用 "NOT IN" ...

于 2013-08-13T15:41:32.570 回答
1

你可以使用减号

   SELECT SSN, membershipids
   FROM table_1
   MINUS
   SELECT SSN, membershipids
   FROM table_2

其使用示例http://www.techonthenet.com/sql/minus.php

于 2013-08-13T15:30:05.347 回答