Cartesian joins and cross-product relationships

Expert

Use the × (Cartesian) join operator to relate every record in one table to every record in another, enabling matrix lookups and global popups.

What you'll learn

  • When a Cartesian join is the right tool
  • How to define a Cartesian join in the Relationships Graph
  • The performance implications of large Cartesian joins

A Cartesian join (using the × operator in the Relationships Graph) creates a relationship where every record on the left is related to every record on the right, regardless of field values. This is useful for value list dropdowns, global search fields on a layout, or building matrix-style UIs where all combinations are needed.

1/3
1

When to use a Cartesian join

A Cartesian join is appropriate when: you need every record from a lookup table to appear in a dropdown on every record; you are building a global search that must scan all records; or you need a portal that always shows all records in a table regardless of the anchor.

FileMaker Script
// Use case: a "global search" field that searches all contacts
// Globals::gSearchTerm is a global field
// TO: Contacts_All uses × (Cartesian) join with Globals
// The portal always shows all contacts; portal filter narrows by gSearchTerm

Sign in to track your progress and pick up where you left off.

Sign in to FM Dojo