在一个表中查找不在另一个表中的ID

时间:2017-04-05 20:37:03

标签: sql oracle

我有两张桌子:

表1

ID    | Name     |    Code
 1       Joe          123
 2       Sam          674
 3       Mike         321

表2

ID    | User Name|    Code
 1        Joe         123
 2        Sam         674 
 3       Mike         321
 4       John         457
 5        Tim         235

期望的结果:

4|John|457
5| Tim|235

Tabe1和table2代码完全相同。表1代码是添加的新字段,因此不包含任何记录的数据。使用ID作为键我从table2获取代码并在table1中填充它们。但是table1的ID比table2少得多,因此table2有更多的代码然后是table1。我想查询哪些代码没有转移到table1。我认为它会如此简单:

select *
from table2 t2
where t2.Code is not null and
      t2.Code not in (select t1.Code from table1 t1 where t1.Code is not null);

这不会给我带来任何奇怪的东西。我需要在此查询中调整什么?这是为了oracle。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

SELECT t2.*
  FROM table2 t2
 WHERE NOT EXISTS ( SELECT 1 FROM table1 t1
                     WHERE t1.code = t2.code );