Использование ABS () со значением из другого запроса - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь найти похожие дома с помощью ABS (), и мне приходится использовать значения из одного ряда для ввода в функцию ABS.

У меня вопрос, могу ли я сделать это за один раз вместо двух запросов?

По сути, я бы использовал идентификатор input house для извлечения его данных, а затем использовал эти данные в 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 :

Результаты вроде бы в порядке - я исправил проблему в другом месте. Как я могу улучшить этот запрос / метод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...