A LEFT JOIN adds rows. Every right-hand column on them is NULL.
The common read: A cabinet nobody has visited comes out of the join as its own row from the cabinets table, so its visit cabinet_id still reads the cabinet's id and only the visit details are empty.
Name what is in the visit columns of a cabinet nobody has ever visited, then name where that row came from.
The row did not come from either table. The documentation defines the outer join in two steps: first an inner join is performed, then for each row in the left-hand table (cabinets) that does not satisfy the join condition with any row in the right-hand table (site_visits), a joined row is added with null values in the right-hand table's columns. Every site_visits column on avenida do porto's row is NULL, including cabinet_id, which reads NULL although the cabinet's id is 2.
The query feeds the ISP's maintenance backlog report: one row per street cabinet, at the grain of the cabinet rather than the visit, with the last visit attached where there is one. Field ops counts the rows and calls the count coverage. When the count drops, the ticket goes to whoever loaded the visits, and the two engineers who reviewed the query never read its join condition closely.

