运行以下内容非常有用:
SELECT email FROM User WHERE empNum IN (126,513,74)
但是,使用以下内容需要很长时间才能回复(无错误)
SELECT email FROM table1 WHERE empNum IN (
SELECT empNum FROM table2 WHERE accomp = 'onhold' GROUP BY empNum
)
造成这种情况的原因是什么?
答案 0 :(得分:1)
我认为您需要的连接语句是:
SELECT email FROM table1
INNER JOIN table2
ON table1.empNum=table2.empNum
AND table2.accomp = 'onhold'
答案 1 :(得分:1)
那个怎么样?
SELECT DISTINCT table1.email
FROM table1
INNER JOIN table2 USING(empNum)
WHERE table2.accomp = 'onhold'
如果您经常使用该查询,则应该在table2.accomp
上创建一个索引:
CREATE INDEX accomp ON table2 (accomp);
或者
CREATE INDEX accomp ON table2 (empNum,accomp);
执行一些粗略(但决定性)的基准:
清除查询缓存(*):
RESET QUERY CACHE;
运行慢查询并记下时间
(*)您需要相关权限才能运行该命令