Inner joins drop unmatched rows.

highlighted = computed this step

Unmatched rows drop

An inner join keeps only matched pairs; unmatched input rows have no output row.

inner means matched only\text{inner means matched only}

Read unmatched counts

The join has 2 unmatched left rows and 2 unmatched right rows.

unmatched left=2\text{unmatched left}=2

Inner-join examples are tiny finite-table transforms; SQL dialect completeness, type coercion, optimizer behavior, execution cost, indexing, and database-product claims are out of scope.

Unmatched rows drop: left tablecustomer_idname1Ada2Ben3CyNULLNoKey Unmatched rows drop: right tablecustomer_idorder_iditem1101book1102pen2103bag4104lampNULL105mystery candidate row pairsleftSourcerightSourceleftKeyrightKeymatched00[1][1]yes01[1][1]yes02[1][2]no03[1][4]no04[1][NULL]no10[2][1]no11[2][1]no12[2][2]yes13[2][4]no14[2][NULL]no20[3][1]no21[3][1]no22[3][2]no23[3][4]no24[3][NULL]no30[NULL][1]no31[NULL][1]no32[NULL][2]no33[NULL][4]no34[NULL][NULL]no inner join rowsleft.customer_idleft.nameright.customer_idright.order_idright.item1Ada1101book1Ada1102pen2Ben2103bag inner join factsfactvalueleftRowCount4rightRowCount5candidatePairCount20matchingPairCount3unmatchedLeftRows2unmatchedRightRows2joinRowCount3keyColumnCount1nullKeyMatches0rowOrderleft_source_then_right_source

No NULL padding

This is not an outer join; unmatched rows are absent, not padded.

no padding\text{no padding}

Summary

Only matched candidate pairs survive.

matched pairs only\text{matched pairs only}