Qe:1)
select
a.finishproductid
from
tblt_invoiceorderitems a, tblm_invoiceorder b
where
b.invoiceorderdate <= 'Current Date' and
a.invoiceorderid = b.invoiceorderid
---它有超过16k的记录。
Qe:2)
select jobcardid, stockcode
from tblm_finishproduct
where productionentrydate <= 'Current Date'
---它还有超过16k的记录。
现在我想从第二次查询而不是第一次查询。
select jobcardid, stockcode
from
tblm_finishproduct
where
productionentrydate <= 'CurrrntDate' and
finishproductid not in
(
select
a.finishproductid
from
tblt_invoiceorderitems a, tblm_invoiceorder b
where
b.invoiceorderdate <= 'CurrrntDate' and
a.invoiceorderid = b.invoiceorderid
);
现在花点时间
答案 0 :(得分:0)
从not in:
中删除它b.invoiceorderdate <= 'CurrrntDate' and
答案 1 :(得分:0)
这不能解决您的问题,但您不应在where子句中使用a.invoiceorderid = b.invoiceorderid
- 尝试使用此查询代替第一个查询。 Natural join比制作整个表的交叉产品并仅选择那些匹配的行更有效。
select a.finishproductid
from tblt_invoiceorderitems a
natural join tblm_invoiceorder b
where b.invoiceorderdate <= 'Current Date'
答案 2 :(得分:0)
“选择表1,表2,表3”maby的结果为16k ^ 3或16k ^ 2。您需要使用主键进行“内连接”或“连接”以进行搜索。
见你。