【发布时间】:2013-07-01 05:32:57
【问题描述】:
考虑下面的 Table_A 和 Table_B:
Table_A
ID |A_Field_1
1 |10
2 |11
3 |12
表_B:
ID |B_Field_1
1 |500
1 |510
1 |520
2 |550
3 |530
我需要编写一个查询,以获取 Table_B 中没有 B_Field_1 值 520 或 530 的值的 ID 和 A_Field_1。
输出:
ID |A_FIELD_1
2 |11
我目前的查询如下:
SELECT ID,A_Field_1
from Table_A
where ID not in (select ID from Table_B where B_Field_1 in (520,530))
这可行,但有人可以提供更好的基于性能的查询吗?和上面的查询一样,select ID from Table_B where B_Field_1 in (520,530) 内部查询很大,对应一个不断增长的表。
【问题讨论】:
-
@AmitSingh 在标签中:
[tag:informix] -
这两张表有什么索引?
-
@AmitSingh 是的,它是 informix
标签: sql performance select optimization informix