-2

我附上了我正在努力解决的问题。到目前为止,我已经计算出每种连接类型的元组数量

我得到:R4 = 15(完全连接,所以第一个表中有 10 个,第二个表中有 5 个)R3=?,R2 = 5,R1 = 10。

正确答案是第四个要点,但我不确定如何获得。任何帮助,将不胜感激! 在此处输入图像描述

4

1 回答 1

1

只需分别考虑每个连接,您可以获得每个连接返回的最小和最大行数。

R1。TBL1 左自然外连接 TBL2

所以 TBL1 有 10 行,所以会返回 10 行,不管 TBL2 是什么都没有其他可能

R2。TBL1 右自然外连接 TBL2

与上面类似,TBL2 有 5 行,因此返回 5 行。没有其他可能。

R3。TBL1 自然加入 TBL2

在没有连接类型 ('INNER', LEFT, 'RIGHT orFULL ) on the JOIn MySQL (and all other DBMS as far as I know) will interpret anINNER JOIN') 的情况下,因此返回的最大可能行数是 5,因为在 TBL2 中只有 5 行,但是有可能返回 0 行,如果没有匹配项。

R4。TBL1 自然全外连接 TBL2

如果两者之间没有公共值,这将返回 15 行,或者如果 TBL2 中的所有值都在 TBL1 中,则仅返回 10 行。

所以你有了

R1. 10
R2. 5
R3. 0-5
R4 10-15

所以按照你得到的行数的降序重新排列:

R4 10-15
R1. 10
R2. 5
R3. 0-5

哪个是你的答案

R4 >= R1 > R2 >= R3

于 2016-11-11T12:40:49.330 回答