Я использую MySQL с PHP, у меня есть таблица хранилища и таблица филиалов хранилища, мне нужно получить магазины с ближайшим именем ветки и идентификатором
таблицы
1 - магазины
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 1 | store1 |
|---------------------|------------------|
| 2 | store 2 |
------------------------------------------
2- store_branches
|---------------------|------------|------------------| --------------|-------------|
| id | store_id | name | lat | lng |
|---------------------|------------|------------------|---------------|-------------|
| 1 | 1 | branch x | 30.134166 | 31.384267 |
|---------------------|------------|------------------|---------------|-------------|
| 2 | 1 | branch y | 31.134168 | 32.384267 |
|---------------------|------------|------------------|---------------|-------------|
| 3 | 2 | branch v | 34.134140 | 36.384267 |
|---------------------|------------|------------------|---------------|-------------|
| 1 | 2 | branch f | 36.134181 | 31.384267 |
|---------------------|------------|------------------| --------------|-------------|
мне нужно получить список магазинов с ближайшей веткой от пользователя
предположим, что пользователь lat = 30.0736176 & lng = 31.3418702
слышит, как я пытался это сделать
select `store_branches`.`id` as `branch_id`, `stores`.`id` as `store_id`, `stores`.`name` as `store_name`
from `stores`
inner join `store_branches` on stores.id = (
SELECT `id`
from `store_branches`
WHERE store_branches.store_id = stores.id
order by POW(69.1 * (store_branches.lat - '30.0736176' ), 2) +
POW(69.1 * ( '31.3418702' - store_branches.lng) * COS(store_branches.lat / 57.3), 2) asc
limit 1
)
group by `stores`.`id`
, но он не работает должным образом
так как сделать это?