【问题标题】:SQL Table Transformation Course on Code AcademyCodecademy 上的 SQL 表转换课程
【发布时间】:2018-03-29 01:39:04
【问题描述】:

这个问题来自 Code Academy 的SQL 表转换课程。我很想知道以下 2 个查询之间的区别以及结果集显示不同答案的原因:

【问题讨论】:

    标签: sql sqlite subquery


    【解决方案1】:

    这里的问题是airports.code 可能有重复。在这种情况下,从flights 连接到airports 表可能会导致重复行,因为flights 中的一条记录可能会匹配airports 中的多条记录。

    如果字段 airports.code 是不同的,即该列中没有重复项,则两个查询将返回相同数量的结果。考虑以下示例数据:

    航班:

    origin
    1
    2
    3
    

    机场:

    code
    1
    1
    2
    3
    

    应该清楚WHERE IN 查询(第一个)将只返回三个记录,每个origin 值一个。但是第二个带有连接的查询实际上会返回 4 个 记录,因为origin=1 将匹配 两次code=1

    【讨论】:

      猜你喜欢
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多