如何在Oracle 11g中使用两个ID组合编写select

时间:2013-08-13 15:23:14

标签: sql oracle

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

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

所以如果table_1有SSN = 111-123-2345和membershipId = 00001234的记录 该记录不能存在于表-2中。

2 个答案:

答案 0 :(得分: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”......

答案 1 :(得分:1)

你可以使用MINUS

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

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