Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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连接中的相关查询_Mysql_Sql - Fatal编程技术网

MySQL连接中的相关查询

MySQL连接中的相关查询,mysql,sql,Mysql,Sql,为什么在整个查询的一部分中出现错误=>uknown column devgeo.id?下面 ' select devgeo.id from device_geolocation devgeo inner join (select concat(''received_posts_'', cast(devgeo.id as char))) rcv_posts on(devgeo.id=rcv_posts.id)', 另外,为什么设置@a=devgeo.id并在cast(@a as char)中使用

为什么在整个查询的一部分中出现错误=>
uknown column devgeo.id
?下面

' select devgeo.id from device_geolocation devgeo inner join (select concat(''received_posts_'', cast(devgeo.id as char))) rcv_posts on(devgeo.id=rcv_posts.id)',
另外,为什么设置
@a=devgeo.id
并在
cast(@a as char)
中使用
@a
会产生一个错误,即
中没有列?下面

rcv_posts.post_id != ', cast(post_id as char),
首先,我计算每个子查询都有权访问其父查询别名。 第二,正如我在使用
exists
运算符在
where
子句中实现整个查询的第一部分时所经历的那样,但也有相同的错误-
未知列devgeo.id
。使用用户变量后出现错误-
未知列
,但对于
存在
运算符中的连接表名

@给戈登

set @q = (select concat('insert into ', created_table_name, 
                            ' select @a=devgeo.id from device_geolocation devgeo inner join (select concat(''received_posts_'', cast(@a as char))) rcv_posts on(devgeo.id=rcv_posts.id)',
                            ' where devgeo.id != ', cast(deviceid as char),  
                            ' and devgeo.id != ', cast(post_device_id as char), 
                            ' and rcv_posts.post_id != ', cast(post_id as char),                                    
                            ' limit ', cast(x as char)));

这是查询的重要部分:

select @a=devgeo.id
from device_geolocation devgeo inner join
      (select concat(''received_posts_'', cast(@a as char))
      ) rcv_posts
      on(devgeo.id=rcv_posts.id)',
                        ' 
这毫无意义。未定义列
rcv\u posts.id
,因此无论子查询中有什么内容,
on
子句都将失败。也许你的意图是:

select @a = devgeo.id
from device_geolocation devgeo cross join
      (select concat(''received_posts_'', cast(@a as char)) as var
      )

或者,您可能打算在子查询中使用
from
子句。

您的查询没有意义。您应该在问题中更好地表示您的实际查询。例如,
join
列没有定义。子查询中的一列未指定别名。没有from
子句中的
,但可能有一个子句。您说未定义联接列是什么意思?开头有from子句。我需要引用子查询形成的表。在received_posts_X post_id列中应该没有id。但是您在
on
子句中引用了
rcv_posts.id
。错误:“where子句”中的未知列“rcv_posts.post_id”如何使用一个查询实现此筛选?