我有一个电影租赁业务的示例数据库。我正在尝试编写一个查询,查找当前售罄的所有电影。
请记住,我想确保此查询不会捕获库存中但从未出现在租借表中的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
TABLES:
-MovieID
-MovieTitle
-DvdID
-MovieID
-RentalID
-DvdID
-AccountID
-RentalDate
-ReturnDate
答案 0 :(得分:0)
您只需要纠正第一个子查询中的错误 - 应该是DvdID
而不是RentalID
。这个查询对我有用,适合你吗?
查询:
SELECT Count(DvdID) AS Inventory, MovieTitle
FROM Dvd
JOIN Movie on Dvd.MovieID = Movie.MovieID
WHERE Dvd.DvdID IN
(SELECT DvdID
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 MovieTitle