diff --git a/fastapi_book_server/app/services/author.py b/fastapi_book_server/app/services/author.py index 76709b2..6edd3f8 100644 --- a/fastapi_book_server/app/services/author.py +++ b/fastapi_book_server/app/services/author.py @@ -17,11 +17,9 @@ SELECT ARRAY( ) as sml, ( SELECT count(*) FROM book_authors - LEFT JOIN books - ON (books.id = book AND - books.is_deleted = 'f' AND - books.lang = ANY(:langs ::text[])) - WHERE author = authors.id + LEFT JOIN books ON (books.id = book) + WHERE author = authors.id AND books.is_deleted = 'f' + AND books.lang = ANY(:langs ::text[]) ) as books_count FROM authors WHERE ( @@ -31,11 +29,9 @@ SELECT ARRAY( ) AND EXISTS ( SELECT * FROM book_authors - LEFT JOIN books - ON (books.id = book AND - books.is_deleted = 'f' AND - books.lang = ANY(:langs ::text[])) - WHERE author = authors.id + LEFT JOIN books ON (books.id = book) + WHERE author = authors.id AND books.is_deleted = 'f' + AND books.lang = ANY(:langs ::text[]) ) ) SELECT fauthors.id FROM filtered_authors as fauthors @@ -57,11 +53,9 @@ WITH filtered_authors AS ( SELECT id FROM authors WHERE EXISTS ( SELECT * FROM book_authors - LEFT JOIN books - ON (books.id = book AND - books.is_deleted = 'f' AND - books.lang = ANY(:langs ::text[])) - WHERE author = authors.id + LEFT JOIN books ON (books.id = book) + WHERE author = authors.id AND books.is_deleted = 'f' + AND books.lang = ANY(:langs ::text[]) ) ) SELECT id FROM filtered_authors diff --git a/fastapi_book_server/app/services/sequence.py b/fastapi_book_server/app/services/sequence.py index e5fa5c0..46116ac 100644 --- a/fastapi_book_server/app/services/sequence.py +++ b/fastapi_book_server/app/services/sequence.py @@ -10,21 +10,17 @@ SELECT ARRAY ( similarity(name, :query) as sml, ( SELECT count(*) FROM book_sequences - LEFT JOIN books - ON (books.id = book AND - books.is_deleted = 'f' AND - books.lang = ANY(:langs ::text[])) - WHERE sequence = sequences.id + LEFT JOIN books ON (books.id = book) + WHERE sequence = sequences.id AND books.is_deleted = 'f' + AND books.lang = ANY(:langs ::text[]) ) as books_count FROM sequences WHERE name % :query AND EXISTS ( SELECT * FROM book_sequences - LEFT JOIN books - ON (books.id = book AND - books.is_deleted = 'f' AND - books.lang = ANY(:langs ::text[])) - WHERE sequence = sequences.id + LEFT JOIN books ON (books.id = book) + WHERE sequence = sequences.id AND books.is_deleted = 'f' AND + books.lang = ANY(:langs ::text[]) ) ) SELECT fsequences.id FROM filtered_sequences as fsequences diff --git a/fastapi_book_server/app/services/translator.py b/fastapi_book_server/app/services/translator.py index b93fd1b..8f4141c 100644 --- a/fastapi_book_server/app/services/translator.py +++ b/fastapi_book_server/app/services/translator.py @@ -17,11 +17,9 @@ SELECT ARRAY( ) as sml, ( SELECT count(*) FROM translations - LEFT JOIN books - ON (books.id = book AND - books.is_deleted = 'f' AND - books.lang = ANY(:langs ::text[])) - WHERE author = authors.id + LEFT JOIN books ON (books.id = book) + WHERE author = authors.id AND books.is_deleted = 'f' AND + books.lang = ANY(:langs ::text[]) ) as books_count FROM authors WHERE ( @@ -31,11 +29,9 @@ SELECT ARRAY( ) AND EXISTS ( SELECT * FROM translations - LEFT JOIN books - ON (books.id = book AND - books.is_deleted = 'f' AND - books.lang = ANY(:langs ::text[])) - WHERE author = authors.id + LEFT JOIN books ON (books.id = book) + WHERE author = authors.id AND books.is_deleted = 'f' AND + books.lang = ANY(:langs ::text[]) ) ) SELECT fauthors.id FROM filtered_authors as fauthors