SubQuery doesn't seem to work
The locksAgg query returns results results on it's own, but when added as a subquery, I get zero results. Am I doing something wrong with how I am using subqueries?
const votes = useLiveQuery((q) => {
const locksAgg = q
.from({ lock: c.locksCollection })
.join({ vote: c.votesCollection }, ({ lock, vote }) =>
eq(lock._id, vote.lockId),
)
.join({ org: c.orgsCollection }, ({ lock, org }) =>
eq(lock?.orgId, org._id),
)
.where(({ vote }) => eq(vote?.epochNumber, EPOCH_NUMBER))
.groupBy(({ lock, org }) => [lock._id, lock.name, org?.color])
.select(({ lock, vote, org }) => ({
_id: lock._id,
totalPercent: sum(vote?.percent),
lockName: lock?.name,
lockColor: org?.color,
}))
return q
.from({ vote: c.votesCollection })
.join({ lock: locksAgg }, ({ vote, lock }) => eq(vote.lockId, lock._id))
.where(({ vote }) =>
and(
eq(vote.poolAddress, poolAddress),
eq(vote.epochNumber, EPOCH_NUMBER),
),
)
.orderBy(({ vote }) => vote._creationTime, 'asc')
.select(({ vote, lock }) => ({
...vote,
totalVotes: 0,
status: 'planning',
lockName: lock?.lockName,
lockColor: lock?.lockColor,
overallPercent: lock?.totalPercent,
}))
}) const votes = useLiveQuery((q) => {
const locksAgg = q
.from({ lock: c.locksCollection })
.join({ vote: c.votesCollection }, ({ lock, vote }) =>
eq(lock._id, vote.lockId),
)
.join({ org: c.orgsCollection }, ({ lock, org }) =>
eq(lock?.orgId, org._id),
)
.where(({ vote }) => eq(vote?.epochNumber, EPOCH_NUMBER))
.groupBy(({ lock, org }) => [lock._id, lock.name, org?.color])
.select(({ lock, vote, org }) => ({
_id: lock._id,
totalPercent: sum(vote?.percent),
lockName: lock?.name,
lockColor: org?.color,
}))
return q
.from({ vote: c.votesCollection })
.join({ lock: locksAgg }, ({ vote, lock }) => eq(vote.lockId, lock._id))
.where(({ vote }) =>
and(
eq(vote.poolAddress, poolAddress),
eq(vote.epochNumber, EPOCH_NUMBER),
),
)
.orderBy(({ vote }) => vote._creationTime, 'asc')
.select(({ vote, lock }) => ({
...vote,
totalVotes: 0,
status: 'planning',
lockName: lock?.lockName,
lockColor: lock?.lockColor,
overallPercent: lock?.totalPercent,
}))
})