© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Drizzle TeamDT
Drizzle Team•3y ago•
6 replies
Shubham-Sinha

How to dynamically select columns in relation query with proper type inference ?

const result = await db.query.products.findMany({
    columns: {
      id: true,
      title: true,
      retailPrice: true,
      discount: true,
      price: true,
    },
    orderBy: orderBy,
    limit: perPage,
    offset: meta.offset,
  })
const result = await db.query.products.findMany({
    columns: {
      id: true,
      title: true,
      retailPrice: true,
      discount: true,
      price: true,
    },
    orderBy: orderBy,
    limit: perPage,
    offset: meta.offset,
  })

The above example generated following types
const result: {
    title: string;
    description: string | null;
    id: string;
    retailPrice: number;
    discount: number;
    price: number;
}[]
const result: {
    title: string;
    description: string | null;
    id: string;
    retailPrice: number;
    discount: number;
    price: number;
}[]

But if I use
const avalaibleColumns = ["id", "title", "price"]
const result = await db.query.products.findMany({
    columns: {
      id:  avalaibleColumns.includes("id"),
      title: avalaibleColumns.includes("title"),
      retailPrice: avalaibleColumns.includes("retailPrice"),
      discount: avalaibleColumns.includes("discount"),
      price: avalaibleColumns.includes("price"),
    },
    orderBy: orderBy,
    limit: perPage,
    offset: meta.offset,
  })
const avalaibleColumns = ["id", "title", "price"]
const result = await db.query.products.findMany({
    columns: {
      id:  avalaibleColumns.includes("id"),
      title: avalaibleColumns.includes("title"),
      retailPrice: avalaibleColumns.includes("retailPrice"),
      discount: avalaibleColumns.includes("discount"),
      price: avalaibleColumns.includes("price"),
    },
    orderBy: orderBy,
    limit: perPage,
    offset: meta.offset,
  })

const result: {
    title: string;
    description: string | null;
    id: string;
    ... 20 more ...;
    attributes: Record<...> | null;
}[]
const result: {
    title: string;
    description: string | null;
    id: string;
    ... 20 more ...;
    attributes: Record<...> | null;
}[]
Drizzle TeamJoin
The official Discord for all Drizzle related projects, such as Drizzle ORM, Drizzle Kit, Drizzle Studio and more!
11,879Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Proper query results inference
Drizzle TeamDTDrizzle Team / help
3y ago
relation select query with where condition
Drizzle TeamDTDrizzle Team / help
3y ago
Conditional Select in M2M findMany Type Inference
Drizzle TeamDTDrizzle Team / help
3y ago
Proper type for relational query
Drizzle TeamDTDrizzle Team / help
11mo ago