Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将第一个sql语句结果使用到另一个sql语句中_Mysql_Sql_Phpmyadmin_Mysql Workbench - Fatal编程技术网

Mysql 将第一个sql语句结果使用到另一个sql语句中

Mysql 将第一个sql语句结果使用到另一个sql语句中,mysql,sql,phpmyadmin,mysql-workbench,Mysql,Sql,Phpmyadmin,Mysql Workbench,基本上我想做的是从道路数据中选取所有坐标 一个接一个,然后在20分钟内找到所有点 并将这些点插入另一个表中 因此,对于roadData表中的每个x,y,从 并将这些点插入另一个新表中 所以我必须这样做: SELECT geo_coordinates_latitude, geo_coordinates_longitude FROM tweetmelbourne HAVING ( 3959 * acos( cos( radians(latitude) ) * cos( radians( geo

基本上我想做的是从道路数据中选取所有坐标 一个接一个,然后在20分钟内找到所有点 并将这些点插入另一个表中

因此,对于roadData表中的每个x,y,从 并将这些点插入另一个新表中

所以我必须这样做:

SELECT geo_coordinates_latitude, geo_coordinates_longitude
 FROM tweetmelbourne
 HAVING  ( 3959 * acos( cos( radians(latitude) ) * cos( radians( geo_coordinates_latitude ) ) * 
 cos( radians( geo_coordinates_longitude ) - radians(longitude) ) + sin( radians(latitude) ) *
 sin( radians( geo_coordinates_latitude ) ) ) ) < .1 ORDER BY distance LIMIT 0 , 20; 
描述墨尔本

描述道路数据

带多个参数的IN的正确语法是:Val1,Val2 INSELECT Val1,Val2

也可以通过连接完成:

SELECT t.address,(t.x+t.y) as z 
FROM student t
JOIN tweet s
 ON(t.x = s.x and t.y = s.y)
编辑:我想你想要的是:

SELECT s.address,t.x+t.y as z
FROM student s
CROSS JOIN tweet t
试试这个:

SELECT s.address, (t.x + t.y) as z
from (SELECT id,x,y FROM `tweet`) as t, student s
WHERE t.id = s.id;

您需要连接两个表,在ON子句中计算距离以选择附近的行

SELECT *
FROM tweetmelbourne
JOIN roadData
ON ( 3959 * acos( cos( radians(latitude) ) * cos( radians( geo_coordinates_latitude ) ) * 
    cos( radians( geo_coordinates_longitude ) - radians(longitude) ) + sin( radians(latitude) ) *
    sin( radians( geo_coordinates_latitude ) ) ) ) < .1

如果桌子很大,这将非常缓慢。不可能使用索引来实现连接,因此它必须在每对行上执行复杂的公式。您可能想看看MySQL的扩展。

您需要将其分为两个子查询,其中x在。。。这是毫无意义的。WHERE子句用于选择student中的行。student表和tweet表如何相互关联?tweet表中有student_id列吗?但我只想这样做,让第一个查询的输出为5行。现在我想对每5行运行第二个查询。你不应该发布新问题,你应该编辑原始问题。但他们都不清楚你真正想做什么。您似乎不理解WHERE在SQL中的含义,这是一件非常基本的事情。错误代码:1054。“字段列表”中的未知列“x”学生表中是否有列x@阿容恰达兰普。我想使用第二个查询的输出作为第一个查询的输入。基本上我的主要问题是这个,但我认为没有人想阅读复杂的内容,所以我缩短了它。这没有任何意义,where子句基本上是:`SELECT。。在哪里。这永远是真的。请解释你想做什么。选择地理坐标纬度,地理坐标经度,3959*acos cos RADIANSLATINTUDE*cos radians geo_坐标_纬度*cos radians geo_坐标_经度-RADIANSLATINTUDE+sin RADIANSLATINTUDE*sin radians geo_坐标_纬度作为到道路的距离从推特到墨尔本交叉连接道路数据,距离小于20阶,距离限制为0,20;我想这也很好。是的,它很慢。。如何使用spatia;数据我试试看,然后问你是否可以。
SELECT t.address,(t.x+t.y) as z 
FROM student t
JOIN tweet s
 ON(t.x = s.x and t.y = s.y)
SELECT s.address,t.x+t.y as z
FROM student s
CROSS JOIN tweet t
SELECT s.address, (t.x + t.y) as z
from (SELECT id,x,y FROM `tweet`) as t, student s
WHERE t.id = s.id;
SELECT *
FROM tweetmelbourne
JOIN roadData
ON ( 3959 * acos( cos( radians(latitude) ) * cos( radians( geo_coordinates_latitude ) ) * 
    cos( radians( geo_coordinates_longitude ) - radians(longitude) ) + sin( radians(latitude) ) *
    sin( radians( geo_coordinates_latitude ) ) ) ) < .1