Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代码学院SQL表转换课程_Sql_Sqlite_Subquery - Fatal编程技术网

代码学院SQL表转换课程

代码学院SQL表转换课程,sql,sqlite,subquery,Sql,Sqlite,Subquery,这个问题来自代码学院的SQL表转换课程。我很想知道以下两个查询之间的区别,以及为什么结果集显示不同的答案: 这里的问题是机场。code可能有重复项。在这种情况下,从航班连接到机场表可能会导致重复的行,因为航班中的记录可能与机场中的多个记录相匹配 如果字段airports.code是不同的,即该列中没有重复项,则两个查询将返回相同数量的结果。考虑以下样本数据: 航班: origin 1 2 3 机场: code 1 1 2 3 应该清楚的是,WHERE IN查询(第一个)将只返回三条记录,每个

这个问题来自代码学院的
SQL
表转换课程。我很想知道以下两个查询之间的区别,以及为什么结果集显示不同的答案:


这里的问题是
机场。code
可能有重复项。在这种情况下,从
航班
连接到
机场
表可能会导致重复的行,因为
航班
中的记录可能与
机场
中的多个记录相匹配

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

航班:

origin
1
2
3
机场:

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