This commit is contained in:
2024-03-12 19:08:15 +01:00
parent d1130b76c3
commit f7d0c41870
2 changed files with 8 additions and 8 deletions

View File

@@ -98,8 +98,8 @@ export class CardsRepository {
const sqlQuery = ` const sqlQuery = `
SELECT c.*, g.grade as "userGrade" SELECT c.*, g.grade as "userGrade"
FROM card AS c FROM flashcards.card AS c
LEFT JOIN grade AS g ON c.id = g."cardId" AND g."userId" = $1 LEFT JOIN flashcards.grade AS g ON c.id = g."cardId" AND g."userId" = $1
WHERE c."deckId" = $2 AND (${whereClause}) WHERE c."deckId" = $2 AND (${whereClause})
ORDER BY g."grade" ${direction === 'asc' ? 'ASC NULLS FIRST' : 'DESC NULLS LAST'} ORDER BY g."grade" ${direction === 'asc' ? 'ASC NULLS FIRST' : 'DESC NULLS LAST'}
LIMIT $${queryParams.length + 1} OFFSET $${queryParams.length + 2} LIMIT $${queryParams.length + 1} OFFSET $${queryParams.length + 2}

View File

@@ -59,7 +59,7 @@ export class DecksRepository {
async findMinMaxCards(): Promise<{ min: number; max: number }> { async findMinMaxCards(): Promise<{ min: number; max: number }> {
const result = await this.prisma const result = await this.prisma
.$queryRaw`SELECT MAX(card_count) as "maxCardsCount", MIN(card_count) as "minCardsCount" FROM (SELECT deck.id, COUNT(card.id) as card_count FROM deck LEFT JOIN card ON deck.id = card."deckId" GROUP BY deck.id) AS card_counts;` .$queryRaw`SELECT MAX(card_count) as "maxCardsCount", MIN(card_count) as "minCardsCount" FROM (SELECT deck.id, COUNT(card.id) as card_count FROM flashcards.deck LEFT JOIN "flashcards"."card" ON deck.id = card."deckId" GROUP BY deck.id) AS card_counts;`
return { return {
max: Number(result[0].maxCardsCount), max: Number(result[0].maxCardsCount),
@@ -129,9 +129,9 @@ SELECT
COUNT(c.id) AS "cardsCount", COUNT(c.id) AS "cardsCount",
a."id" AS "authorId", a."id" AS "authorId",
a."name" AS "authorName" a."name" AS "authorName"
FROM deck AS "d" FROM flashcards.deck AS "d"
LEFT JOIN "card" AS c ON d."id" = c."deckId" LEFT JOIN "flashcards"."card" AS c ON d."id" = c."deckId"
LEFT JOIN "user" AS a ON d."userId" = a.id LEFT JOIN "flashcards"."user" AS a ON d."userId" = a.id
${ ${
conditions.length conditions.length
? `WHERE ${conditions.map((_, index) => `${_.replace('?', `$${index + 1}`)}`).join(' AND ')}` ? `WHERE ${conditions.map((_, index) => `${_.replace('?', `$${index + 1}`)}`).join(' AND ')}`
@@ -177,8 +177,8 @@ LIMIT $${conditions.length + havingConditions.length + 1} OFFSET $${
SELECT COUNT(*) AS total SELECT COUNT(*) AS total
FROM ( FROM (
SELECT d.id SELECT d.id
FROM deck AS d FROM flashcards.deck AS d
LEFT JOIN card AS c ON d.id = c."deckId" LEFT JOIN flashcards.card AS c ON d.id = c."deckId"
${ ${
conditions.length conditions.length
? `WHERE ${conditions ? `WHERE ${conditions