Mysql Erro 1062:SQL语法错误

Mysql Erro 1062:SQL语法错误,mysql,Mysql,我有三张桌子。t1,t2,t3。我想得到t2和t3之间的公共值,并从t1中选择整个记录。当我在中键入我的语句时: select * from db.t1 where col1 IN ( select col1 from t2 , t3 where t2.col1=t3.col1); 我得到一个语法错误。怎么了?这是: where col1.t2=col1.t3); 应该是: where t2.col1=t3.col1); 假设您正在测试t2.col1=t3.col1(而不是col1.t2

我有三张桌子。t1,t2,t3。我想得到t2和t3之间的公共值,并从t1中选择整个记录。当我在中键入我的语句时:

select * from db.t1 where col1 
IN (
select col1 from t2 , t3
where t2.col1=t3.col1);
我得到一个语法错误。怎么了?

这是:

where col1.t2=col1.t3);
应该是:

where t2.col1=t3.col1);

假设您正在测试t2.col1=t3.col1(而不是col1.t2=col1.t3,如图所示),那么另一个问题是内部选择中col1的模糊性。

我不确定,但可能您必须重命名封装的col1:

select * from db.t1 where t1.col1 
IN (
select col1 as col1bis from t2 , t3
where t2.col1 = t3.col1);

对不起,这只是一个打字错误。但我写的和你一样。我编辑了我的帖子。问题仍然存在。您使用的是什么数据库平台?错误编号因平台而异。看起来您的别名也是反向的。您是否尝试过“从t2中选择t2.col1,其中t2.col1=t3.col1”作为内饰选择?