【发布时间】:2012-03-16 04:48:41
【问题描述】:
我正在尝试优化我的查询,它有一个内部连接和合并。
连接表,是一个包含一个整数字段的简单表,我添加了一个唯一键。
对于我的 where 子句,我为三个字段创建了一个键。
但是当我查看计划时,它仍然说它正在使用表扫描。
我哪里错了?
这是我的查询
select date(a.startdate, '+'||(b.n*a.interval)||' '||a.intervaltype) as due
from billsndeposits a
inner join util_nums b on date(a.startdate, '+'||(b.n*a.interval)||'
'||a.intervaltype) <= coalesce(a.enddate, date('2013-02-26'))
where not (intervaltype = 'once' or interval = 0) and factid = 1
order by due, pid;
【问题讨论】:
-
我认为这是mysql,对吧?
-
请提供您正在使用的数据库的名称。您可能还有其他选择。
-
date(a.startdate, '+'||(b.n*a.interval)||' '||a.intervaltype)这行得通吗? -
不,不是 mySql,是 sqlite
-
@Jordan 是的,它确实有效
标签: sql join query-optimization