在其他论坛问了下,没有答案,来咱家试试,虽然咱家主业是excel
三个表的结构 需要查询表1的700条商品编码的价格、区域1、库存等信息,
第一种语句,耗时10分钟左右
SELECT 表1.商品编码, 商品表.品名, 商品表.价格, 商品表.区域1, 库存表.库存
FROM 库存表 INNER JOIN (表1 INNER JOIN 商品表 ON 表1.商品编码 = 商品表.商品编码) ON 库存表.商品编码 = 商品表.商品编码
WHERE (((库存表.部门)="A"));
第二种语句,耗时1秒
SELECT 商品表.商品编码, 商品表.品名, 商品表.价格, 商品表.区域1, 库存表.库存
FROM 库存表 INNER JOIN 商品表 ON 库存表.商品编码 = 商品表.商品编码
WHERE (((商品表.商品编码) In ("6132478412","6243158791","6412351265",.....写完表1的700条商品编码)) AND ((库存表.部门)="A"));
第二种快,但是查询条件要写完700条编码不现实,第一种直接连接三个表查询,但是速度太慢,请问如何优化
有网友答 SELECT 商品表.商品编码, 商品表.品名, 商品表.价格, 商品表.区域1, 库存表.库存
FROM 库存表 INNER JOIN 商品表 ON 库存表.商品编码 = 商品表.商品编码
WHERE (((商品表.商品编码) In (select 商品编码 from 表1)) AND ((库存表.部门)="A"));
试了下不行,还是慢,近10分钟 查询条件用这个 (商品表.商品编码) In ("6132478412","6243158791","6412351265",.....写完表1的700条商品编码) 就是秒出结果
|