我有一个用于电影租赁业务的示例数据库。我正在尝试编写一个查询来查找当前已售罄的所有电影标题。
- 该电影的所有 DVD 目前都已出租。或者...
- 那部电影没有 DVD
请记住,我想确保此查询不会捕获库存中但从未出现在租借表中的 DVD。
编辑:这是我到目前为止所拥有的,但我无法解释上面一行中的场景^。
SELECT Count(DvdID) AS Inventory, Movie.Title
FROM Dvd
JOIN Movie on Dvd.MovieID = Movie.MovieID
WHERE Dvd.DvdID IN
(SELECT RentalID
FROM Rental
WHERE Rental.ReturnDate IS NULL)
OR Dvd.DvdID NOT IN
(SELECT Dvd.DvdID
FROM Dvd
WHERE DvdID NOT IN
(SELECT Rental.DvdID FROM RENTAL)
)
GROUP BY Movie.Title
表格:
电影
-电影ID
-电影标题
DVD
-DVDID
-电影ID
出租
-RentalID
-DVDID
-帐户ID
-出租日期
-归期