我附上了我正在努力解决的问题。到目前为止,我已经计算出每种连接类型的元组数量
我得到:R4 = 15(完全连接,所以第一个表中有 10 个,第二个表中有 5 个)R3=?,R2 = 5,R1 = 10。
我附上了我正在努力解决的问题。到目前为止,我已经计算出每种连接类型的元组数量
我得到:R4 = 15(完全连接,所以第一个表中有 10 个,第二个表中有 5 个)R3=?,R2 = 5,R1 = 10。
只需分别考虑每个连接,您可以获得每个连接返回的最小和最大行数。
R1。TBL1 左自然外连接 TBL2
所以 TBL1 有 10 行,所以会返回 10 行,不管 TBL2 是什么都没有其他可能
R2。TBL1 右自然外连接 TBL2
与上面类似,TBL2 有 5 行,因此返回 5 行。没有其他可能。
R3。TBL1 自然加入 TBL2
在没有连接类型 ('INNER', LEFT
, 'RIGHT or
FULL ) on the JOIn MySQL (and all other DBMS as far as I know) will interpret an
INNER 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