2012-09-06 28 views
0

你好,我有一个MySQL数据库和所有我想基本上是从第一表查询MySQL查询悬垂挺括

我想通这样的事情,但不工作得到第二表中的值。

select src, dst_number, state, duration 
from cdrs, area_code_infos 
where SUBSTRING(cdrs.src,2,3) = area_code_infos.`npa`; 

请帮我弄清楚这一点。我曾尝试在PHP中使多个查询一个接一个地运行,但是当我在45分钟的等待时间后加载页面时,我放弃了。

感谢,

+0

“但是当我45分钟等待后,加载页面” ---为什么你认为结合2个查询可能有帮助?有1个查询并不意味着它会比2个查询快两倍。 – zerkms

+1

我想你可能有兴趣知道'cdrs,area_code_infos'实际上是两张表的笛卡尔乘积。这在资源方面非常昂贵... – Erik

回答

0

我假设表是farily大,你也做一个没有索引的查询..基本上已经串到每一行进行计算。

无论何时您进行连接,都要确保连接的两个字段都已编入索引。

一个选项是创建另一个包含子字符串计算的列,然后创建一个索引。

然而,更好的办法是有一个areaCodeInfosID柱,并将其设置为外键area_code_infos表