© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Drizzle TeamDT
Drizzle Team•2y ago
Nick

Querying and typing a many to many relationship?

So I'm enjoying using drizzle, but querying a many to many relationship seems a bit verbose, which makes me think I'm doing it wrong. It's also making using
drizzle-zod
drizzle-zod
a bit confusing:

So I've set up my tables,
user
user
and
profile
profile


// Drizzle relationships:
export const userRelations = relations(users, ({ many }) => ({
  usersToProfiles: many(userToProfiles),
}));

export const profileRelations = relations(profiles, ({ many }) => ({
  usersToProfiles: many(usersToProfiles),
}));

export const usersToProfilesRelations = relations(
  usersToProfiles,
  ({ one }) => ({
    user: one(users, {
      fields: [usersToProfiles.userId],
      references: [users.id],
    }),
    profiles: one(profiles, {
      fields: [usersToProfiles.profileId],
      references: [profiles.id],
    }),
  }),
);

// Querying all users and their profiles
  const listings = await db.query.users.findMany({
    with: {
      usersToProfiles: {
        with: {
          profiles: true,
        },
      },
    },
  });
// Drizzle relationships:
export const userRelations = relations(users, ({ many }) => ({
  usersToProfiles: many(userToProfiles),
}));

export const profileRelations = relations(profiles, ({ many }) => ({
  usersToProfiles: many(usersToProfiles),
}));

export const usersToProfilesRelations = relations(
  usersToProfiles,
  ({ one }) => ({
    user: one(users, {
      fields: [usersToProfiles.userId],
      references: [users.id],
    }),
    profiles: one(profiles, {
      fields: [usersToProfiles.profileId],
      references: [profiles.id],
    }),
  }),
);

// Querying all users and their profiles
  const listings = await db.query.users.findMany({
    with: {
      usersToProfiles: {
        with: {
          profiles: true,
        },
      },
    },
  });


I'm then not sure how to extend the
User
User
schema with its
usersToProfiles
usersToProfiles
and its
Profiles
Profiles
:

export const userSchema = createInsertSchema(users);
export const UserWithProfilesSchema = userSchema.extend() // not sure how to extend here
export type UserWithProfileType = z.infer<typeof UserWithProfileSchema>;
export const userSchema = createInsertSchema(users);
export const UserWithProfilesSchema = userSchema.extend() // not sure how to extend here
export type UserWithProfileType = z.infer<typeof UserWithProfileSchema>;
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

many-to-many and querying
Drizzle TeamDTDrizzle Team / help
2y ago
drizzle-seed and many-to-many relationship
Drizzle TeamDTDrizzle Team / help
8mo ago
update many to many relationship
Drizzle TeamDTDrizzle Team / help
11mo ago
How to query from a many to many relationship?
Drizzle TeamDTDrizzle Team / help
3y ago