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”如何使用一个查询实现此筛选?