私は現在CS50 PSET7( https://cs50.harvard.edu/x/2020/psets/7/movies/ )を使用しており、12.sqlと13を実行する方法がわかりません.sql(リンクで説明)。誰かが私を助けてくれますか?
12.sqlの場合:「ジョニーデップの映画のID」の「id」と「ヘレナボナムカーターの映画のID」の「id」が次のような映画のタイトルを見つけます。
SELECT "title" FROM "movies"
WHERE "id" IN (-- code to select movie id's in which "Johnny Depp" starred)
AND "id" IN (-- code to select movie id's in which "Helena Bonham Carter" starred);
13.sqlの場合:「stars」の「person_id's」が「Kevin Bacon(born:1958)」がスターを付けた「movie_id」に対応し、!=「Kevin Bacon」という名前の人の名前を検索します。
SELECT "name" FROM "people"
WHERE "id" IN
(-- select "person id's" from "stars" where "movie id" in
(-- select "movie id's" in which "Kevin Bacon (born: 1958)" starred))
AND "name" != "Kevin Bacon";
13.sqlの2番目の括弧内に、「1958年生まれのケビンベーコン」をクエリするには、次のようなコードを記述します。
... WHERE "people"."name" = "Kevin Bacon" AND "people"."birth" = 1958))...
シンプルに考えてください。派手なことをする必要はありません。
これらのPsetの両方について、ネストされたSELECT
ステートメントを使用する必要があります。例:
SELECT table.column FROM table WHERE table.column IN (SELECT table.column2 FROM table WHERE ...)
私の12の経験に基づいて、2つの個別のネストされたクエリ(それぞれに複数の値が含まれている必要があります)を使用し、AND
演算子を使用してこれらの両方に表示される映画を検索する必要があります。
13の場合、いくつかのネストされたクエリを使用すると、Kevin BaconのIDを見つけ、人を選択するまでの作業に役立つことがわかりました。複数の可能なpeople.id
値を含むクエリからの名前値。