2012-06-28 227 views
0

我的查询需要更多时间才能提供输出,我可以创建可以轻松输出的查询。加入查询需要更多时间

SELECT DISTINCT(property.Project_Name), property.Property_Type, ROUND(AVG(property.Unit_Price_psf)), property.Transacted_Price 
FROM property 
JOIN avg_property 
WHERE avg_property.Project_Name=property.Project_Name 
AND avg_property.Median_Price BETWEEN '$mdpr1' AND '$mdpr2' 
GROUP BY property.Project_Name 
+0

替代你对avg_property.Median_Price领域的指数? – Jake1164

+3

我们需要更多的信息,表结构,执行explain命令 – jcho360

+0

对于调试,如果我们可以输出3个查询,将会有所帮助:“SHOW CREATE TABLE property;”,“SHOW CREATE TABLE avg_property;”和“DESCRIBE SELECT ...” –

回答

0

重写的不同

SELECT 
    property.Project_Name, 
    property.Property_Type, 
    ROUND(AVG(property.Unit_Price_psf)), 
    property.Transacted_Price 
FROM property 
    JOIN avg_property 
WHERE exists(select 
      Project_Name 
     from property 
     group by Project_Name) 
    and avg_property.Project_Name = property.Project_Name 
    AND avg_property.Median_Price BETWEEN '$mdpr1' 
    AND '$mdpr2' 
GROUP BY property.Project_Name 
+0

我想从数据库中使用唯一的Project_Name,这就是为什么我写有独特的,你有什么替代? – Gopal

+0

这是不同的选择。如果您的表中有project_name字段,它应该是唯一的。不应该允许重复。 –

+0

不,我有重复项目名称的项目,我想检查这些条目, – Gopal