从另一个表中减去数据库(PHP)

时间:2015-10-20 03:13:52

标签: php mysql sql database

我有一个名为books的表,其中包含书籍的名称和另一个名为students的表。

在表学生中,正在发行一本书。我需要减少书籍表中书籍的数量。

1 个答案:

答案 0 :(得分:0)

我们假设以下内容:

  • 在您的book表格中,名为id的列会为每本书存储唯一标识符,
  • 在您的student表格中,名为borrowed_book_id的列会存储学生借阅的图书的ID,如果没有这样的图书,则会NULL

然后你想知道的是book表中student表中没有相应条目的书籍数量。

您应该可以通过将book表加入student表来查找book行,其中id与任何条目都不匹配borrowed_book_id表格的student列。

SELECT COUNT(*)
FROM book
LEFT JOIN student ON book.id = student.borrowed_book_id
WHERE student.borrowed_book_id IS NULL

注意使用LEFT JOIN而不仅仅是JOIN,因为我们想要返回“左表”(book)中的所有行,无论是否存在匹配的行“右表”(student)。如果给定书籍student中没有这样的匹配行(即,没有学生借书的话),则联接表中student的列将为NULL,这允许.parallax { background-image: url("/background1.jpg"); } 我们算一算。

免责声明:我没有对此进行测试,您可能需要将此查询调整为您的架构。祝你好运!