帮助注册不在内部和内部联接

Nav*_*vin 3 sql oracle

我有两张桌子.表1和表2

表格1

id tid
1  100
2  200
3  300
Run Code Online (Sandbox Code Playgroud)

表2

tid name
100 A
200 B
Run Code Online (Sandbox Code Playgroud)

我想从表1中取出记录的id,而不是表2中的tid.

我的输出应该是这样的.

Table1.id

3
Run Code Online (Sandbox Code Playgroud)

为此我写了以下查询但是花了太多时间.由于两个表都有更多的记录.

请帮助我如何编写查询,以便花费更少的时间.

select id from Table1 where tid not in (select tid from Table2)
select a.id from Table1 a inner join Table2 b on a.tid<>b.tid
Run Code Online (Sandbox Code Playgroud)

TIA.

Dam*_*ver 9

使用左连接,然后使用WHERE子句仅筛选连接不起作用的行:

SELECT
     a.ID
from
     Table1 a
         left join
     Table2 b
         on
            a.tid = b.tid
where
    b.tid is null
Run Code Online (Sandbox Code Playgroud)

当然,这仍然可能不够快,在这种情况下,您需要检查这两个表中的tid列是否有索引.