1 回答

TA贡献1804条经验 获得超3个赞
我在您的查询中主要发现了两个问题:
加入
t1.ID
导致出现以下错误 MySQL:“#1054 - 'on 子句'中的未知列 't1.ID'”,即使我不确定原因;您的子查询返回 2 列(
latitude
和longitude
),这会导致错误“#1241 - 操作数应包含 1 列”
我的建议如下:
SELECT wp_posts.*,
(POW(69.1 * (stores.latitude - $lat), 2) +
POW(69.1 * ($lon - stores.longitude) * COS(stores.latitude / 57.3), 2)) AS distance
FROM wp_posts
LEFT JOIN wp_product_store_relations ps ON ps.product_id = wp_posts.ID
LEFT JOIN wp_stores stores USING (store_id)
WHERE wp_posts.post_type = "product"
HAVING distance < POW(50, 2)
ORDER BY distance ASC;
注意:我想我的查询可以通过加入wp_stores仅包含相关商店(具有产品和距离约束)而不是整个表的子集来优化,但没有进一步调查。
编辑:删除wp_posts表上的别名。
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报