我是mysql的初学者,你能帮我从这种情况下调用query吗
我有两个表,我把id设为auto increment
表1:封闭路线
= id | name | lat
and the query is =
=1|kenjeran 1|-7.2499|-7.249
=2|mulyosari 2|-7.259|-7.259
表2:
用户位置
= id | lat | long1 | lat2 | long2
and the query is =
=18|-7.24945|112.783|-7.25907|112.795
表3:
标记
=id | lat | lng | name
我想问的是:
如何使用表3在表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;
最佳答案
下面是一个有效的查询表单:
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
。相反,使用数值函数。这可能不符合您的要求,但似乎是一个合理的查询。
关于php - 如何从另一个表调用查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24229322/