SQLite (3.7.16.2) で次の制限 (?) を見つけました。
次のスキーマを想像してください。
CREATE TABLE t1 (v);
CREATE TABLE t2 (v);
このようなサブクエリがある場合、
SELECT *, (SELECT COUNT() FROM t2 WHERE t2.v = t1.v) FROM t1;
つまり、サブクエリで外部クエリ (on ) 列t2
を参照できます。t1
でも、
SELECT *, (SELECT COUNT() FROM t2 LIMIT t1.v) FROM t1;
また
SELECT *, (SELECT COUNT() FROM t2 LIMIT 1 OFFSET t1.v) FROM t1;
エラーで失敗しますError: no such column: t1.v
。
これは、OFFSET
andLIMIT
句内の式が外部クエリの列を参照できないことを意味します。
この動作は SQLite エンジンの制限ですか?
それとも私はいくつかのポイントを逃していますか?