エラーを返すと予想される sqlite クエリが実際に成功しているケースに遭遇しました。このクエリが有効である理由を誰かが指摘できるかどうか疑問に思っていました。
CREATE TABLE test_table(
k INTEGER,
v INTEGER
);
INSERT INTO test_table( k, v ) VALUES( 4, 5 );
SELECT * FROM(
SELECT * FROM(
SELECT k, v FROM test_table WHERE 1 = 0
)
UNION ALL
SELECT * FROM(
SELECT rowid, k, v FROM test_table
)
)
列数が異なる2つの選択を結合するとエラーが返されると思います。最も外側のものを削除するとSELECT *
、エラーが発生しますSELECTs to the left and right of UNION ALL do not have the same number of result columns
。