我在加入下面的2个表时遇到问题。我需要的是所有在CLEI或部件号在第二个表中找到的第一个表的零件,与相匹配多少计数有从表1MySQL超级缓慢内部加入组
=================== ===================
table: svi table: svp
=================== ===================
id id
po price
customer clei
clei partNumber
partNumber description
==================== ===================
SVI有大约100万行。 SVP拥有约2000这里是参加我使用...
SELECT svi.clei,
svi.partNumber,
count(*)
FROM svp svp
INNER JOIN
svi svi
ON (svp.clei = svi.clei)
OR (svp.partNumber = svi.partNumber)
GROUP BY svi.partNumber
查询花费有点过了2分钟的运行,这似乎是可笑缓慢。 clei和partNumber在两个表中被索引。我还能做些什么来加速这个连接?
(离题)如果'partNumber'不是表'svi'的'PK',那么你的查询就是无效的SQL。即使MySQL接受它,它也会自由地从SELECT语句中返回表达式svi.clei所需的值。 http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html – axiac
您的'GROUP BY'也缺少SELECT语句中的非聚合列之一 – Phil
是菲尔那是故意的。每个partNumber只能有1个clei,但每个clei可以有多个partNumber。按partNumber分组只能完成我想要做的事情。 – scott80109