SQLite Forum

Recursive CTE
Login
An inner join without a condition is just a cross join... it will match every row in "tmp" to every row in "pointNums".   The table "tmp" contains one row.  The table "pointNums" just contains N rows with the integers 1..N+1.  Joining the tables together, without a condition, matches the single "tmp" row to each index number in "pointNums".  The core query than extracts each value from the single row of "tmp" using the index values in "pointNums."

The key point is that "tmp" only has one row.  Adding an "on" clause wouldn't filter anything... there is nothing to match against.