Я пытаюсь найти похожие дома с помощью 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 :
Результаты вроде бы в порядке - я исправил проблему в другом месте. Как я могу улучшить этот запрос / метод?