1. Silberschatz
A.
Korth
H. F.
& Sudarshan
S. (2020). Database System Concepts (7th ed.). McGraw-Hill. In Chapter 4
"Intermediate SQL
" the section on "Outer-Join Expressions" describes how a LEFT OUTER JOIN preserves tuples from the left relation that do not have matching tuples in the right relation
extending them with null values. This is the foundational principle for the correct answer's logic.
2. PostgreSQL 16 Documentation. (2023). "7.2.2. JOIN Clauses". The documentation for LEFT OUTER JOIN states: "For each row R1 of T1
the joined table has a row for each row in T2 that satisfies the join condition with R1. ... If no join partner exists in T2
a row is generated with null values in the T2 columns." This directly supports the mechanism of using WHERE ... IS NULL to find non-matching rows.
3. SQLite Documentation. "The LEFT and CROSS JOIN keywords". The official documentation explains: "If the ON or USING clause of a LEFT JOIN is not satisfied for some row in the left-hand table
then a single row is output for that left-hand table row with NULL values in the columns that would have been filled from the right-hand table." This confirms the behavior exploited by the correct query.