我有一个非常简单的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.连接。在这里,我需要在选择部分内。
答案 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