如何从另一个表调用查询

时间:2014-06-15 11:52:50

标签: php mysql sql

我是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;

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。而是使用数字函数。
  • 这可能不符合您的要求,但这似乎是一个合理的查询。