>I realize your example may not reflect the specific needs of your >application, ...
Yea, my actual application required a query too complex to be put in an ordinary "where" clause. I think I've figured it out - think of the "exists" clause as sort of an implied join with the table to be partially deleted. if the selection query is similar to: select * from image left join attribute on image.uid=attribute.value I suppose if SQL had anything like a consistent syntax, I would expect to write this as something like: delete from image left join attribute on image.uid=attribute.value SQL doesn't allow this, but this "exists" clause is what you can use instead. delete from image where exists (select * from attribute on attribute.value = image.uid) _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users