根据我所看到的,子查询不是必需的,您可以将查询转换成Laravel符号,如:
$clinics = Clinic::join('countries', 'countries.id', '=', 'clinics.country_id')
->selectRaw('clinics.*, countries.*, (
100 * acos(
cos(radians(?)) *
cos(radians(lat)) *
cos(radians(lng) - radians(?)) +
sin(radians(?)) * sin(radians(lat))
)
) as distance', [$lat, $lng, $lat])
->having('distance', '<', 100)
->orderBy('distance')
->get();
您可能需要明确列出要选择的列
countries
桌子,因为
countries.*
您将覆盖例如
id
你的专栏
clinics
表。我补充说
国家*
因为我想这就是你加入后想做的。