我有两张桌子.表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.
使用左连接,然后使用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列是否有索引.
| 归档时间: |
|
| 查看次数: |
11239 次 |
| 最近记录: |