-2

我有三张桌子。t1,t2,t3。我想获得 t2,t3 之间的共同值并从 t1 中选择整个记录。当我输入我的陈述时:

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

我收到语法错误。怎么了 ?

4

3 回答 3

0

这:

where col1.t2=col1.t3);

应该:

where t2.col1=t3.col1);
于 2012-08-26T07:32:31.963 回答
0

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

于 2012-08-26T07:33:16.807 回答
0

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

select * from db.t1 where t1.col1 
IN (
select col1 as col1bis from t2 , t3
where t2.col1 = t3.col1);
于 2012-08-26T07:33:29.840 回答