2013-10-24 62 views
0

找出數據庫中有多少書不是訂單的一部分。在NOT IN中使用子查詢

查詢:

SELECT COUNT(title) 
FROM book INNER JOIN orders ON book.isbn = orders.bookID 
WHERE isbn NOT IN (bookID); 
+0

請修改。 'NOT IN'不是一個函數,它是一個操作符(或兩個,取決於你如何看待它)。 –

回答

3

我會從這裏使用NOT IN瘦了。學習使用JOIN:。

SELECT Count(*) 
FROM 
    book AS B 
    LEFT JOIN orders AS O 
     ON B.isbn = O.bookID 
WHERE 
    O.isbn IS NULL 
; 

而且也(不是100%肯定這將在Access工作,但我認爲是這樣):

SELECT Count(*) 
FROM 
    book AS B 
WHERE 
    NOT EXISTS (
     SELECT * 
     FROM orders AS O 
     WHERE B.isbn = O.bookID 
    ) 
; 

注意,你不需要Count(title)Count(*)工作正常,並沒有懷疑也許你正在計算非空標題的數量。

0

如果你想使用子查詢和NOT IN,那麼你應該把它寫這樣

SELECT COUNT(title) 
FROM book 
WHERE isbn NOT IN (SELECT bookID 
        FROM orders)