1

DVD テーブル (DVDID、タイトル、障害) とレンタル テーブル (RentalID、MemberID、DVDID、DateRented、DateReturned) を持つ映画ビジネスのデータベースがあります。

レンタル可能な映画を特定するクエリを作成したいと考えています。これを行うには、DVD テーブルで障害のある DVD と、レンタル テーブルで返却されていない DVD を除外する必要があります。

DVD テーブルの [障害] 列にコンテンツがある場合、DVD に障害があることがわかっています。フィールドが空の場合、DVD に問題はありません。DVD は、Rental テーブルの「DateReturned」フィールドにコンテンツがある場合に返却されることが知られています。

これまでのところ、障害のある DVD を除外し、レンタル テーブルで DVD を除外することができましたが、DateReturned フィールドが Null の場合にのみレンタル テーブルで DVD を除外するように改善する必要があります。

SELECT DVD.DVDID, DVD.Title, DVD.Rating, DVD.Genre, DVD.Released, DVD.RentalPeriod, DVD.Distributor, DVD.Faults
FROM DVD
WHERE (((DVD.Faults) Is Null) AND ((Exists (SELECT 1 FROM Rental WHERE Rental.DVDID = DVD.DVDID))=False));

どうすればこれを達成できるか、誰にもアイデアがありますか?

4

1 に答える 1

0

これが、レンタルされたがまだ返却されていない DVD を示していると仮定すると...

SELECT DVDID
FROM Rental
WHERE DateReturned Is Null;

それをサブクエリとして使用しLEFT JOINDVDテーブルをそれに使用します。

SELECT
    DVD.DVDID,
    DVD.Title,
    DVD.Rating,
    DVD.Genre,
    DVD.Released,
    DVD.RentalPeriod,
    DVD.Distributor,
    DVD.Faults
FROM
    DVD
    LEFT JOIN
        (
            SELECT DVDID
            FROM Rental
            WHERE DateReturned Is Null
        ) AS sub
        ON DVD.DVID = sub.DVID
WHERE
        DVD.Faults Is Null
    AND sub.DVID Is Null;

WHERE条項で は、DVD.Faults Is Null欠陥のあるものをsub.DVID Is Null除外し、レンタルされて返されていないものを除外します。

于 2016-04-10T03:02:51.833 に答える