将查询从mysql转换为sqlite3

时间:2015-04-27 11:00:48

标签: mysql sql sqlite

我有一个非常简单的MySQL查询

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

当我在MySQL上运行它时,它运行正常。但是在Sqlite3上,同样的查询抛出

  

错误:没有这样的列:selected_id

我尝试使用谷歌搜索,但大多数解决方案都是w.r.t.连接。在这里,我需要在选择部分内。

1 个答案:

答案 0 :(得分: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