2015-04-27 84 views
0

我有一個非常簡單的MySQL查詢轉換查詢SQLITE3

select clients.id as selected_id,(select clients.id 
from clients where clients.id=selected_id) 
from clients where clients.id=20 

,當我在MySQL運行,其運行正常。但在SQLITE3,相同的查詢拋出

Error: no such column: selected_id

我試着用搜索引擎,但大多數解決方案都w.r.t.連接。這裏我需要它在選擇部分。

+0

什麼是用加入了問題? –

+0

你不能將id作爲selected_id別名,並在一個子查詢中使用它。您需要別名表並將其加入到他們的ID中。 這就是說我不明白你的查詢中的重點。你想達到什麼目的? –

+0

有一個已經構建好的用MySQL運行的大型查詢。現在我們正在移植相同的代碼來運行sqlite,我們需要確保最小的更改已完成 –

回答

0

SQLite符合SQL標準,它表示SELECT子句中的別名僅用於輸出列,但在子句本身中不可用。

使用相關子查詢像這樣的重命名錶的一個正確的方法:

SELECT id AS selected_id, 
     (SELECT id 
     FROM clients AS c2  -- ! 
     where c2.id = clients.id 
     ) AS the_other_id 
FROM clients 
WHERE id = 20 
+0

我明白了。工作很好。謝謝 –