Drizzle TeamDT
Drizzle Team15mo ago
4 replies
Blitz

Why does drizzle want to request the same column twice from db?

So basically this is my function:
async getUserByToken({ token }: { token: string }) {
    const sq = this.db
      .select()
      .from(bansTable)
      .where(gt(bansTable.issuedUntil, dayjs().toDate()))
      .as("sq");

    const data = await this.db
      .select({
        id: sessionsTable.id,
        token: sessionsTable.token,
        refreshToken: sessionsTable.refreshToken,
        rejectedAt: sessionsTable.rejectedAt,
        createdAt: sessionsTable.createdAt,
        user: jsonBuildObject({
          id: usersTable.id,
          username: usersTable.username,
          discordUsername: usersTable.discordUsername,
          discordId: usersTable.discordId,
          createdAt: usersTable.createdAt,
          email: usersTable.email,
        }),
        bans: jsonAggBuildObject({
          id: sq.id,
          issuedTo: sq.issuedTo,
          issuedUntil: sq.issuedUntil,
          issuedBy: sq.issuedBy,
          reason: sq.reason,
          issuedAt: sq.issuedAt,
        }),
      })
      .from(sessionsTable)
      .leftJoin(usersTable, eq(sessionsTable.userId, usersTable.id))
      .leftJoin(sq, eq(usersTable.id, sq.issuedTo))
      .where(eq(sessionsTable.token, token))
      .groupBy(usersTable.id, sessionsTable.id);
    return takeFirst(data);
  }


and what I get from logger is this query
Was this page helpful?