CROSS JOIN starts with two visible input tables.

highlighted = computed this step

Two input tables

A CROSS JOIN starts with a left table and a right table.

two inputs\text{two inputs}

Read both sides

The left table has 2 rows, and the right table has 3 rows.

left rows=2\text{left rows}=2

CROSS 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.

Two input tables: left tablecolorredblue Two input tables: right tablesizeSML pair gridleftSourcerightSourceleftValuesrightValuesoutput00[red][S][red, S]01[red][M][red, M]02[red][L][red, L]10[blue][S][blue, S]11[blue][M][blue, M]12[blue][L][blue, L] CROSS JOIN output rowsleft.colorright.sizeredSredMredLblueSblueMblueL CROSS JOIN factsfactvalueleftRowCount2rightRowCount3pairCount6outputRowCount6outputColumnCount2rowOrderleft_source_then_right_sourceemptySideProductno

No match condition

There is no key comparison in this scoped CROSS JOIN model.

no match predicate\text{no match predicate}

Summary

The next step pairs rows, not matching keys.

pair rows next\text{pair rows next}