所以我对我正在研究的旧试卷有一些具体的问题,为实际考试做准备。这是一个非常基础的层面,但我只是需要帮助来理解某些特定任务的结果。
内部加入和自然加入:
形式,希望没关系。 我的第一个问题是1.声明如下:
Select * From r INNER JOIN s ON r.F=s.F
为什么在进行内部连接时,12行会被删除,而不是20?
第二个问题是关于以下声明:
Select E, G From r NATURAL JOIN s;
同样,它是否特别从行E中删除了12个而不是20个?
我再次为图像的可怕设置道歉而不是,希望有人可以向我解释这个非常简单的任务的结果。
提前致谢
亲切的问候
答案 0 :(得分:0)
正如您所看到的,在您的情况下,内部匹配两个表共有的元素:
r在F栏中有[5,15,20] a在F栏中有[5,15,20]
因此,值将为[5,15],并且当您执行select *时,它将从两个表中选择所有列,但不重复具有共同列的名称
Select * From r INNER JOIN s ON r.F=s.F
结果表r:
E F G
10 5 20
20 15 30
答案 1 :(得分:0)
Select * From r INNER JOIN s ON r.F=s.F
结果将是
E F F G
10 5 5 30
20 15 15 20
INNER JOIN关键字选择两个表中具有匹配值的记录。这就是为什么12被删除,即没有共同的列。 现在是
的结果Select E, G From r NATURAL JOIN s
是
E G
10 30
20 20
当您使用* on select时,
F E G
5 10 30
15 20 20
在自然连接上使用*时,它将扩展为以下列列