У меня есть запрос mysql, который взаимодействует из 2 таблиц, 'свойств' и 'предложений'.MySQL-запрос для нескольких JOIN двух таблиц в нескольких столбцах
Таблица «Предложения» может соответствовать записи в таблице свойств, либо ссылаясь на конкретную запись по уникальному коду, либо по уезду или региону, в котором находится свойство.
Вот пример моего запроса ...
SELECT *, ROUND(((3959 * acos(cos(radians(51.1080390)) * cos(radians(latitude)) * cos(radians(longitude) - radians(-4.1610140)) + sin(radians(51.1080390)) * sin(radians(latitude)))) * 2),0)/2 AS `distance`
FROM `properties` AS prop
LEFT JOIN `offers` ON prop.code = offers.the_property
LEFT JOIN `offers` AS offsCnty ON prop.county = offsCnty.the_county
LEFT JOIN `offers` AS offsRgn ON prop.region = offsRgn.the_region
HAVING distance <= 2.5
ORDER BY `sleeps` ASC, `distance` ASC
LIMIT 0, 10
В таблице предлагает 3 колонки the_property
/the_county
/the region
имеют решающее значение для связи соответствующие предложения с имущественным/х. Если предложение применяется ко всему округу, поле the_property
пустое, в противном случае, если предложение относится к определенному свойству, это поле содержит уникальный код свойства.
Я думал, что использование нескольких JOIN будет решением, однако когда любое из 3 основных полей offer
пусто, соединение возвращает «NULL» для полей таблицы offers
.
Как это можно решить ??
Большое спасибо
'ЛЕВОГО JOIN' означает, что если нет строки, которая соответствует' ON' состоянию, его должен заполнить его «NULL». Но пока он соответствует одному из трех объединений, вы должны получить непустые значения в этом наборе столбцов. – Barmar