On 3/6/20, Xinyue Chen <[email protected]> wrote: > -- Buggy query > select t1.textid a, i.intid b > from t t1, > i i > where (((t1.textid = i.intid) and (t1.textid in (12)) and (t1.textid = > i.intid)) or ((t1.textid = null) IS NOT FALSE)) > group by i.intid, t1.textid;
(1) The expression "t1.textid=null" is always NULL. (2) The expression "NULL IS NOT FALSE" is always true. (3) The WHERE clause expression "... OR true" is always true. Hence, the query above simplifies to just "SELECT * FROM t, i;". That query should return 4 rows, just as you show. I think it is working correctly. -- D. Richard Hipp [email protected] _______________________________________________ sqlite-users mailing list [email protected] http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

