2011-08-26 36 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; 
相关问题