© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Drizzle TeamDT
Drizzle Team•2y ago•
1 reply
melodyclue

json_arrayagg(json_array ...

db.query.team.findFirst({
        where: eq(t.slug, params.slug),
        with: {
            members: true,
        },
    });
db.query.team.findFirst({
        where: eq(t.slug, params.slug),
        with: {
            members: true,
        },
    });

this SQL is

{
  sql: 'select `id`, `slug`, `name`, `subtitle`, `avatar_url`, `created_at`, `updated_at`, coalesce((select json_arrayagg(json_array(`id`, `team_id`, `user_id`, `role`, `created_at`, `updated_at`)) from `team_member` `team_members` where `team_members`.`team_id` = `team`.`id`), json_array()) as `members` from `team` where `team`.`slug` = ? limit ?',
  params: [ 'melodyclue-team', 1 ]
}
{
  sql: 'select `id`, `slug`, `name`, `subtitle`, `avatar_url`, `created_at`, `updated_at`, coalesce((select json_arrayagg(json_array(`id`, `team_id`, `user_id`, `role`, `created_at`, `updated_at`)) from `team_member` `team_members` where `team_members`.`team_id` = `team`.`id`), json_array()) as `members` from `team` where `team`.`slug` = ? limit ?',
  params: [ 'melodyclue-team', 1 ]
}


but
    const sq = db
        .select({
            members: sql`json_arrayagg(json_array(${teamMember.id},${teamMember.userId},${teamMember.role},${teamMember.createdAt},${teamMember.updatedAt}))`,
        })
        .from(teamMember)
        .where(eq(teamMember.teamId, t.id));

    const data = await db
        .select({
            id: t.id,
            name: t.name,
            subtitle: t.subtitle,
            slug: t.slug,
            avatarUrl: t.avatarUrl,
            createdAt: t.createdAt,
            updatedAt: t.updatedAt,
            members: sql`coalesce(${sq}, json_array())`.as("members"),
        })
        .from(t)
        .where(eq(t.slug, params.slug));
    const sq = db
        .select({
            members: sql`json_arrayagg(json_array(${teamMember.id},${teamMember.userId},${teamMember.role},${teamMember.createdAt},${teamMember.updatedAt}))`,
        })
        .from(teamMember)
        .where(eq(teamMember.teamId, t.id));

    const data = await db
        .select({
            id: t.id,
            name: t.name,
            subtitle: t.subtitle,
            slug: t.slug,
            avatarUrl: t.avatarUrl,
            createdAt: t.createdAt,
            updatedAt: t.updatedAt,
            members: sql`coalesce(${sq}, json_array())`.as("members"),
        })
        .from(t)
        .where(eq(t.slug, params.slug));

this is not one I want.

Is this drizzle-related issue?
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

Mysql JSON_ARRAYAGG as a string instead of a json
Drizzle TeamDTDrizzle Team / help
3y ago
How to filter null values from json_arrayagg
Drizzle TeamDTDrizzle Team / help
3y ago
Postgrest inserting json array results in stringified array
Drizzle TeamDTDrizzle Team / help
2y ago
How to push to json array
Drizzle TeamDTDrizzle Team / help
2y ago