1

私はSQL Server 2008 R2を使用しており、テーブルがあります:

Book: id, name, ...  >> 3500 rows
BookChapter: id, bookid, content(nvarchar(max)... >> it has about 300000 rows

2 の間には何の関係もありません。

現在、章がないすべての本を数えたいと思います。

SELECT     COUNT(Id) AS Expr1
FROM         dbo.Book
WHERE     (Id NOT IN  (SELECT BookId FROM dbo.BookChapter))   

常にタイムアウトが期限切れになります。どうすれば達成できますか?

4

3 に答える 3

4

存在しないのと同様の左結合を使用してみてください。ただし、パフォーマンスが向上する場合があります。

select count(1) as Counts
from 
    dbo.Book B
    left join dbo.BookChapter BC on BC.BookID = B.ID
where
    BC.BookID is null
于 2013-07-12T03:08:04.420 に答える