Does DynamoDB support joins?

No. DynamoDB does not support joins. As a nonrelational database it has no JOIN operation, and PartiQL does not add one. Instead you denormalize — duplicate or embed related data so each access pattern is served by a single query — or use single-table design to co-locate related items under one partition key.

Why there is no join

DynamoDB is built for predictable, single-digit-millisecond reads at any scale. Joining at read time would make latency depend on how much related data exists, which breaks that guarantee. So the join is done at write time, by you.

What you do instead

  • Denormalization — copy or embed the related data you read together.
  • Single-table design — store multiple entity types in one table with overloaded keys, so an item collection reads them together in one Query.
  • Adjacency lists — model many-to-many relationships as items you Query by key.

The trade-off

You do more careful work on writes to make reads cheap and constant-time.

Go deeper

Read DynamoDB joins, single-table design, and one-to-many relationships. Download DynoTable to model related data visually.

Console 없이 DynamoDB 작업하기

DynoTable은 DynamoDB를 위한 빠른 데스크톱 클라이언트입니다 — 테이블을 탐색하고, SQL 스타일 쿼리를 실행하고, 항목을 로컬에서 편집하세요.