給定關係R(a,b)和S(c,d)。我執行以下查詢關係爲什麼第二是影響結果?
從R,S中選擇a,b;
當S是空的,結果總是空的,而R(A,B)是非empty.I我沒有得到S被如何影響查詢甚至應該有與S.
給定關係R(a,b)和S(c,d)。我執行以下查詢關係爲什麼第二是影響結果?
從R,S中選擇a,b;
當S是空的,結果總是空的,而R(A,B)是非empty.I我沒有得到S被如何影響查詢甚至應該有與S.
沒有互動這是因爲, 不管你正在查詢的項目,你是仍然做兩個表之間的聯接。
如果S
爲空,則連接的結果爲零行,因爲這就是連接爲您提供的內容。這確實是你所看到的。
如果S
有10,000行,您將獲得R
中每行的許多副本。
你會看到正確的行數從R
的唯一方式(假設沒有where
條款影響加入),如果是在S
它有一行。
如果您在查詢中沒有使用S
中的任何列,那麼您確實不應將其列爲源表。正確的查詢是:
select a, b from R
我沒有得到S被如何影響查詢甚至應該帶有S沒有互動
因爲A的笛卡爾乘積和空集是一個空集。參考:http://en.wikipedia.org/wiki/Empty_set
此外,還要檢查該Why is the Cartesian product of a set A and empty set an empty set?
沒有ü嘗試左加入? – Melon