0

我有一个用于电影租赁业务的示例数据库。我正在尝试编写一个查询来查找当前已售罄的所有电影标题。

  • 该电影的所有 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

-出租日期

-归期

4

1 回答 1

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
于 2012-10-13T15:42:17.797 回答