2011-08-26 37 views
0

如何使用此select語句的結果將行插入另一個表中?如何使用此MySQL select語句將行插入另一個表中?

SELECT "Old Town" AS neighborhoods, reportdatetime, IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((38.91911 -77.03648000000001, 
38.918150000000004 -77.03979000000001, 
38.917910000000006 -77.0403, 
38.91734 -77.04073000000001, 
38.91911 -77.03648000000001 
))') 
)AS result, latitude, longitude, sport_type 
FROM sport 
WHERE IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((38.91911 -77.03648000000001, 
38.918150000000004 -77.03979000000001, 
38.917910000000006 -77.0403, 
38.91734 -77.04073000000001, 
38.91911 -77.03648000000001))') 
) = 1; 

我想把這個選擇的結果放到一個名爲sports_by_neighborhood的表中。其結構如下:

  • 街區(VARCHAR 50)
  • 結果(TINYINT 1)
  • reportdatetime (日期時間)
  • 緯度(小數11,9)
  • 經度(小數10 ,8)
  • sport_type(VARCHAR 30)
+0

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html –

回答

2

只需使用insert select語法:

INSERT INTO other_table (neighborhoods, reportdatetime, result, latitude, longitude, sport_type) 
SELECT "Old Town" AS neighborhoods, reportdatetime, IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((38.91911 -77.03648000000001, 
38.918150000000004 -77.03979000000001, 
38.917910000000006 -77.0403, 
38.91734 -77.04073000000001, 
38.91911 -77.03648000000001 
))') 
)AS result, latitude, longitude, sport_type 
FROM sport 
WHERE IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((38.91911 -77.03648000000001, 
38.918150000000004 -77.03979000000001, 
38.917910000000006 -77.0403, 
38.91734 -77.04073000000001, 
38.91911 -77.03648000000001))') 
) = 1; 
+0

太簡單了,+1。 – Johan

+0

嗨knittl,真棒,工作很好。謝謝。 – Laxmidi

0
INSERT INTO sports_by_neighborhood (neighborhoods, reportdatetime, result, latitude,longitude, sport_type) 
SELECT "Old Town" AS neighborhoods, reportdatetime, IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT( 'POLYGON((38.91911 -77.03648000000001, 
38.918150000000004 -77.03979000000001, 
38.917910000000006 -77.0403, 
38.91734 -77.04073000000001, 
38.91911 -77.03648000000001 
))') 
)AS result, latitude, longitude, sport_type 
FROM sport 
WHERE IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT( 'POLYGON((38.91911 -77.03648000000001, 
38.918150000000004 -77.03979000000001, 
38.917910000000006 -77.0403, 
38.91734 -77.04073000000001, 
38.91911 -77.03648000000001))') 
) = 1; 
相關問題