我是mysql的初学者,你可以帮助我从这种情况中调用查询
我有2个表,我使id为自动增量
表1: closed_route
= id | name | lat
and the query is =
=1|kenjeran 1|-7.2499|-7.249
=2|mulyosari 2|-7.259|-7.259
表2: 的 USER_LOCATION
= id | lat | long1 | lat2 | long2
and the query is =
=18|-7.24945|112.783|-7.25907|112.795
表3: 的标志物
=id | lat | lng | name
我想问的是: 如何使用表格在表3中插入列
我使用此代码但结果为0,实际上该表有查询
INSERT INTO markers (lat,lng,name) SELECT user_location.lat, user_location.long1, closed_route.name
FROM user_location, closed_route
where user_location.lat LIKE CONCAT ('%', closed_route.lat, '%')LIMIT 1;
答案 0 :(得分:3)
这是一个应该有效的查询形式:
INSERT INTO markers (lat, lng, name)
SELECT ul.lat, ul.long1, cr.name
FROM user_location ul cross join
closed_route cr
ORDER BY ABS(ul.lat - cr.lat)
LIMIT 1;
这会插入一个标记,其closed_route
的名称与lat
值最近。
注意:
join
。只是不要在from
子句中使用逗号。始终使用明确的join
语法。like
。而是使用数字函数。