2012-08-26 46 views
-2

我有三個表。 T1,T2,T3。我想獲得t2,t3之間的公共值,並從t1中選擇整個記錄。當我輸入我的語句爲:Erro 1062:SQL語法錯誤

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

我得到一個語法錯誤。哪裏不對 ?

+0

什麼數據庫平臺,您使用的?錯誤號碼因平臺而異。也看起來你有你的別名後退。你有沒有試過'從t2選擇t2.col1,t3其中t2.col1 = t3.col1'用於你的室內選擇? –

回答

0

假設你正在測試一個t2.col1 = t3.col1(而不是col1.t2 = col1.t3,如圖所示) ,那麼另一個問題是內部SELECT中col1的歧義。

0

此:

where col1.t2=col1.t3); 

應該是:

where t2.col1=t3.col1); 
+0

對不起,這只是一個輸入錯誤在這裏。但我像你一樣寫下了它。我編輯了我的帖子。問題依然存在。 –

0

我不知道,但也許你要重命名您的包裹COL1:

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