【问题标题】:Problem with an inner query with SQL using the IN operator使用 IN 运算符的 SQL 内部查询问题
【发布时间】:2021-08-09 15:39:29
【问题描述】:

所以我正在可汗学院学习 SQL,但我无法让我的代码正常工作以完成播放列表制作挑战的第三步。我应该使用带有 IN 运算符的嵌套子查询。我在下面粘贴了我的代码。

前两条 sql 语句对挑战的第 1 步和第 2 步有效。第三和第四个陈述是我完成第三步的尝试。如何更正它以完成挑战?

  1. 从歌曲中选择标题 WHERE 艺术家 =“女王”;

  2. 从艺术家那里选择名称,其中流派 = '流行';

  3. 从艺术家中选择名称,其中流派在 ( 从歌曲中选择标题 WHERE 艺术家 = 'Queen');

  4. 从艺术家所在的歌曲中选择标题( SELECT name FROM Artists WHERE Artist LIKE 'Pop');

【问题讨论】:

  • 那么要求是什么?您的问题应该包含所有需要的内容。
  • 3. 中,您正试图根据歌曲标题过滤流派列……数据可能不匹配。同样,在4. 中,您的子查询过滤艺术家,当它可能应该按流派过滤时。

标签: sql operator-keyword in-subquery khan-academy


【解决方案1】:

稍微猜测一下,因为你这里没有提供架构数据,但是3.应该可能是:

Select name from artists where genre in (select genre from songs where artist = 'Queen')

这将返回所有在任何类型中都有由 Queen 写过歌曲的歌曲的艺术家。同样,对于4.

Select title from songs where artist in (select name from artists where genre like 'Pop%')

如果他们的流派以“流行”开头,则应该为您提供所有艺术家的所有歌曲名称。

【讨论】:

  • 有一个艺术家表:艺术家(姓名、国家、流派)和一个歌曲表:(艺术家、标题)
  • 顺便说一句,您对 3 的解决方案是正确的。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-04-09
  • 2014-05-05
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 2015-01-30
  • 2021-08-21
相关资源
最近更新 更多