MySQL从另一个表中的计数较低的地方获取

标签 mysql sql

我需要编写一个 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从另一个表中的计数较低的地方获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12872898/

相关文章:

mysql - 如何将这些 SQL SELECT 查询组合成一个 SELECT 语句

mysql - 根据计算字段的值向 MYSQL SELECT 语句添加一个值

mysql - 经典结构——自连DB表、列表

删除 ibdata1 后 MySQL 表消失了

sql - 这两个 MySQL 查询中哪个更有效?

mysql - 与多列的一对多关系

sql - 如何结束一天?

sql - 生成一个随机的 9 位数字

mysql - SQL 语句 Max(Count(*))

sql - 如何在 PostgreSQL 中连接两个 "unnamed tables/selections"?