我目前正在使用CS50 PSET7 (https://cs50.harvard.edu/x/2020/psets/7/movies/),我不知道如何做12.sql和13.sql (在链接中解释)。有人能帮帮我吗?
发布于 2020-05-06 07:36:59
对于12.sql:查找"id's of Johnny Depp movies“中的”id“和"id's of Helena Bonham卡特movies”中的“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:查找“star”中“movie_id_id”与"Kevin Bacon (生于: 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的第二个括号中,要查询"Kevin Bacon born in 1958",您可以编写如下代码:
... WHERE "people"."name" = "Kevin Bacon" AND "people"."birth" = 1958))...
思考简单,不需要做任何花哨的事情。
发布于 2020-03-23 04:19:36
12.sql
考虑使用HAVING ()
https://www.w3resource.com/sql/aggregate-functions/count-having.php
13.sql
正如我在another thread中回答的那样,我发现这些步骤很有帮助:
发布于 2020-02-02 02:22:58
对于这两个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
值的查询中的值。
https://stackoverflow.com/questions/59706969
复制相似问题