Query construction trace Recorded output from query-demo.py using Python 3.12.3. The script prints query text and tuples; it does not open a database. Script output worked pasted text: SELECT name FROM members WHERE id = 3 bound statement: SELECT name FROM members WHERE id = ? bound tuple: ('3',) activity pasted text: SELECT name FROM members WHERE id = 8 bound statement: SELECT name FROM members WHERE id = ? bound tuple: ('8',) Reading notes The joined statement contains the submitted digit inside its SQL text. The statement with a placeholder stays the same for both values. The separate tuple changes from ('3',) to ('8',). Separate table lookup An existing SQLite 3.45.1 in-memory read of members.sql returned: 3|Ada 8|Lane Those rows are not output from query-demo.py.