使用ABS()与另一个查询的值

时间:2011-08-17 20:52:55

标签: mysql join subquery

我正在尝试使用ABS()找到类似的房屋,我必须使用一行中的值来输入ABS功能。

我的问题是,我可以一次性而不是两次查询吗?

基本上,我会使用输入房子的ID来检索其数据,然后使用ABS()中的数据来查找类似的房屋。

(如果您有更好的方法来查找类似的项目,请说出来)

修改

下面是一个我快速切碎的例子,它输出了一些结果但是从快速的看看我把结果看起来似乎不正确(仍在寻找)

SELECT DISTINCT 
    p.*,
    ABS(p2.price - p.price) AS rank_price, 
    ABS(p2.area_minor - p.area_minor) AS rank_area, 

    ABS(p2.bedrooms - p.bedrooms) AS rank_bedrooms, 
    ABS(p2.bathrooms - p.bathrooms) AS rank_bathrooms

FROM 
    properties AS p 

INNER JOIN
    properties as p2 ON p2.id = 1 

WHERE 
    p.id != 1 
    AND p.deleted = 0 

GROUP BY 
    p.id

ORDER BY
    rank_bedrooms ASC, 
    rank_bathrooms ASC, 

    rank_area ASC, 
    rank_price ASC 

LIMIT 5

编辑2

结果似乎没问题 - 我在其他地方解决了问题。如何改进此查询/方法?

0 个答案:

没有答案