FastPrepLeft and Right Join Results

Left and Right Join Results

Mastercard logoMastercard● MediumFULLTIMEPHONE SCREEN

Problem statement

The tables left_items and right_items each contain uniquely identified rows and a shared join_key.

Return the row-level output of both left_items LEFT JOIN right_items and left_items RIGHT JOIN right_items, using equality on join_key.

Label rows from the first join as LEFT and rows from the second join as RIGHT. Preserve every matching row combination. For an unmatched row, return NULL for every column from the missing side.

Table schema

MySQLPostgreSQLPandas

Use the same input data with any supported language. Open the Schema tab in the editor to see the generated SQL setup or Pandas DataFrames.

left_items

Rows on the left side of both joins.

ColumnTypeNullableDescription
left_idPKIntegerNo—
join_keyIntegerNo—
left_valueTextNo—

right_items

Rows on the right side of both joins.

ColumnTypeNullableDescription
right_idPKIntegerNo—
join_keyIntegerNo—
right_valueTextNo—

Expected result

Your query or function must return these columns.

ColumnTypeNullableDescription
join_typeTextNo—
join_keyIntegerNo—
left_idIntegerYes—
left_valueTextYes—
right_idIntegerYes—
right_valueTextYes—

Row order: must match exactly. Numeric tolerance: 0.

Constraints

  • left_id is unique in left_items, and right_id is unique in right_items.
  • join_key is non-null; multiple rows may share the same key.
  • Return columns in this order: join_type, join_key, left_id, left_value, right_id, right_value.
  • Sort LEFT rows before RIGHT rows, then by join_key, left_id, and right_id ascending, with a missing ID after non-null IDs.

More Mastercard problems

See Mastercard hiring insights