我需要一些幫助來連接兩個表格。我有:如何使用函數加入兩個MySQL表格
my_type_table
,其中有列:
- 類型(VARCHAR)
- 緯度(十進制)
- 經度(十進制)
...和neighborhood_shapes
,其中有列:
- 個街區(VARCHAR)
- neighborhood_polygons(幾何)
我有一個叫做myWithin
功能,檢查的經度和緯度,看看他們是否在附近的多邊形。它以緯度和鄰域形狀爲參數。如果該點不在多邊形中,則myWithin
函數返回0,如果該點在多邊形內,則返回1。
我可以做一個select語句如下:
SELECT type, latitude, longitude, 'Newport' AS neighborhood
FROM my_type_table
WHERE myWithin(POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) ,
(SELECT neighborhood_shapes.neighborhood_polygons
FROM neighborhood_shapes
WHERE neighborhood_shapes.neighborhoods = 'Newport')) = 1
這個選擇的結果,例如:
type | latitude | longitude | neighborhood
---------------------------------------------
small | 30.3030 | -70.7070 | Newport
我的問題是,我有很多的街區。我不想每次輸入社區。有沒有辦法去除「紐波特」?基本上,我希望函數能夠在每個點上運行,並給我類型,緯度,經度以及點的位置。
我可以複製上面的選擇並加入與UNION ALL的選擇語句,但這將是一個噩夢輸入每個社區的名字。有一個更好的方法。
有什麼建議嗎?
嗨蘭迪, 非常感謝你的幫助!男人也是那麼快!它效果很好。 (蘭迪沒有測試所以,對於那些誰需要複製它,在這裏需要一些非常小的改動): 一),我不得不改變s.neighborhood到s.neighborhoods B)變化看.neighborhood_shapes.neighborhood_polygons to s.neighborhood_polygons c)添加另一個)後s.neighborhood_polygons 我一直在這個問題上工作了幾天,你在5分鐘內解決了它。再次謝謝你!! – Laxmidi 2010-06-25 18:29:56