我需要编写一个mySQL语句来只返回尚未租用的项目(书籍)。当我有这个但我知道这不对的时候:

SELECT books.copies
FROM books
WHERE books.copies > (SELECT rentals.book_id, COUNT(rentals.book_id) As CountRentals
                        FROM rentals
                        WHERE rentals.book_id = books.id )

最佳答案

使用left join获取所有在rentals表中没有条目的

SELECT b.copies
FROM books b
LEFT OUTER JOIN rentals r ON r.book_id = b.id
WHERE r.book_id IS NULL

关于mysql - MySQL从另一个表中的计数较低的地方获取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12872898/

10-10 06:40