Consider the following table definitions:
DROP TABLE IF EXISTS flightplans; CREATE TABLE flightplans ( id text NOT NULL, ident text, recvd integer, orig text, dest text, PRIMARY KEY (id) ); DROP TABLE IF EXISTS inflight; CREATE TABLE inflight ( fp text, ident text, alt integer, clock integer NOT NULL DEFAULT 0, gs integer, heading integer, lat real, lon real, reg text, squawk int, primary key (fp) ); It is an error to select a column that doesn?t exist? sqlite> select fp from flightplans; Error: no such column: fp But if I select a column that doesn?t exist within an embedded subquery, it is not an error? sqlite> delete from inflight where fp in (select fp from flightplans); sqlite> (In the above example, unless I am mistaken, it should produce more or less the same ?no such column? error.) In my ?real life? version of this stuff where it has a fair number of rows in the tables, it appears to be an infinite loop, like with < 100K rows in each table I aborted the statement after more than 20 minutes of CPU time.