我有一個SQL查詢執行2個表中的某些列不明確的左連接。我可以在連接的表格的前面加上前綴,但是當我嘗試在FROM子句中從表格的前面添加一列時,它會告訴我未知列。我甚至試圖給這個表一個別名像這樣...從點AS p和使用「p」表前綴表,但是也沒有工作。有人能告訴我我做錯了什麼嗎?這裏是我的查詢:表別名 - 字段列表中的未知列
SELECT point_title, point_url, address, city, state, zip_code,
phone, `points`.`lat`, `points`.`longi`, featured,
kmlno, image_url, category.title, category_id,
point_id, lat, longi, reviews.star_points, reviews.review_id,
count(reviews.point_id) as totals
FROM (SELECT *,
(3959 * acos(cos(radians('37.7717185')) * cos(radians(lat))
* cos(radians(longi) - radians('-122.4438929'))
+ sin(radians('37.7717185')) * sin(radians(lat)))) AS distance
FROM points
HAVING distance < '25') as distResults
LEFT JOIN category USING (category_id)
LEFT JOIN reviews USING (point_id)
WHERE (point_title LIKE '%Playgrounds%' OR category.title LIKE '%Playgrounds%')
GROUP BY point_id
ORDER BY totals DESC, distance
LIMIT 0, 10
這裏是所涉及的表的模式:
積分表: 字段類型Null默認註釋 point_id INT(11)否
point_title VARCHAR(255)無
CATEGORY_ID INT(11)否
描述文本沒有
point_url VARCHAR(255)否
地址VARCHAR(255)否
城市VARCHAR(255)無
狀態爲varchar(255)無
ZIP_CODE VARCHAR(255)無
電話爲varchar(255)無
名VARCHAR(255)無
LAT VARCHAR(25)否
隆基VARCHAR(25)否
USER_ID INT(2)無0
功能INT(1)是0
狀態INT(1)否1個
kmlno INT(2)無0
LASTUPDATE VARCHAR(255)否
IMAGE_URL VARCHAR(255)無
評價表: 字段類型Null默認註釋 REVIEW_ID INT(11)否
審查INT(1)否0
review_title VARCHAR(255)無
review_desc文本沒有
star_points INT(11)是0
USER_ID INT(11)是0
point_id INT(11)否
LAT VARCHAR(25)否
茇VARCHAR(25)否
LASTUPDATE VARCHAR(255)否
狀態VARCHAR(1)沒有R
分類表: 字段類型Null默認註釋 CATEGORY_ID INT(11)否
標題VARCHAR(255)否
描述文本否
文件名的varchar(255)否
IMAGE_NAME VARCHAR(255)否
狀態INT(1)是0
LASTUPDATE VARCHAR(255)否
哪一列給你提問?你能格式化你的查詢,以便可以讀取它嗎? – 2010-05-22 20:49:51
我想通了。我不需要使用'points'來預置lat和longi列,而是需要以'distResults'開頭,因爲這是使用的表別名。感謝大家的幫助。 – Jason 2010-06-24 00:01:17