找出数据库中有多少本书不是订单的一部分。
询问:
SELECT COUNT(title)
FROM book INNER JOIN orders ON book.isbn = orders.bookID
WHERE isbn NOT IN (bookID);
我不会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(*)
可以正常工作并且不会怀疑您可能正在尝试计算非 NULL 标题的数量。
如果你想使用子查询而不是 IN,那么你应该这样写
SELECT COUNT(title)
FROM book
WHERE isbn NOT IN (SELECT bookID
FROM orders)