(単純な) SQL クエリに問題があります。
背景は、それぞれBook
に1つ(または複数)定義されていますBookLanguages
このクエリは 9 冊の本を返しますが、これは問題ありません。
SELECT b.BookID
FROM Book b
JOIN BookLanguages bls ON b.BookID = bls.BookID
WHERE b.IsActive= 1
AND
bls.BookLanguageID = 25
GROUP BY b.BookID
ただし、その基準を満たす書籍の総数が必要です (ページ付けの目的で)。
そのクエリを実行すると
SELECT COUNT(b.BookID)
FROM Book b
JOIN BookLanguages bls ON b.BookID = bls.BookID
WHERE b.IsActive= 1
AND
bls.BookLanguageID = 25
GROUP BY b.BookID
値が 1 の 9 行を取得します (これは言語数です。AND bls.BookLanguageID = 25
条件を削除すると、値が 1 または 2 の 9 行が取得されるためです。一部の本では 2 つの言語が定義されているためです)。
つまり、ポイントは - 9
9 行の代わりに数字だけを取得する方法です。