1 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
我在您的查詢中主要發(fā)現(xiàn)了兩個(gè)問(wèn)題:
加入
t1.ID
導(dǎo)致出現(xiàn)以下錯(cuò)誤 MySQL:“#1054 - 'on 子句'中的未知列 't1.ID'”,即使我不確定原因;您的子查詢返回 2 列(
latitude
和longitude
),這會(huì)導(dǎo)致錯(cuò)誤“#1241 - 操作數(shù)應(yīng)包含 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;
注意:我想我的查詢可以通過(guò)加入wp_stores僅包含相關(guān)商店(具有產(chǎn)品和距離約束)而不是整個(gè)表的子集來(lái)優(yōu)化,但沒有進(jìn)一步調(diào)查。
編輯:刪除wp_posts表上的別名。
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報(bào)