【发布时间】:2021-07-14 11:48:57
【问题描述】:
我需要使用来自主查询的参数执行子查询。但是当我可以尝试执行时:
SELECT
(
SELECT time
FROM changes ch2
WHERE ch2.trackable_id = ch.trackable_id AND ch.action = 'create'
LIMIT 1
)
FROM changes ch
LIMIT 1000
我收到一个错误
Error running query: Code: 47, e.displayText() = DB::Exception:
Missing columns: 'ch.trackable_id' while processing query:
'SELECT time
FROM changes ch2
WHERE ch2.trackable_id = ch.trackable_id AND ch.action = 'create'
LIMIT 1',
required columns: 'time' 'ch.trackable_id' 'trackable_id' 'action',
maybe you meant: ['time','trackable_id','trackable_id','action']:
While processing
(SELECT time
FROM changes ch2
WHERE ch2.trackable_id = ch.trackable_id AND ch.action = 'create'
LIMIT 1) AS _subquery1 (version 21.3.14.1 (official build))
任何想法,请。在 PostgreSQL 上它工作正常。
我对这个数据库的经验很少。也许我需要使用不同的方法来构建我的查询。
【问题讨论】:
-
你想完成什么?我假设子查询应该是
ch2.action = 'create',而不是ch.action = 'create'。 -
CH 不支持相关子查询。使用 join 或 union all + group by
标签: sql clickhouse