我無法弄清楚這些查詢之間的區別。我很確定第一個是一個equi-join。我不確定第二個與第一個不一樣。 #2中的子查詢從S中選擇所有的Ids,然後它返回也有這些ID的所有R,不是?在哪裏和嵌套查詢之間的區別
SELECT R.cname FROM R,S, WHERE R.Id = S.Id
SELECT R.cname 從r WHERE R.Id IN(SELECT S.Id FROM S)
編輯:
我抓住這一關過去的考試....我引用:
雖然查詢好像產生他們不一樣的答案。他們如何 不同?您可以給出R和S的示例實例,這些實例顯示 這兩個查詢可以產生不同的答案。
R(身份證,TourId,CNAME,caddress,成本)
S(標識,規範ID)
編輯:編輯:
我猜它與重複做。
+1用於指出替代語法。有太多人將他們的加入標準與他們的選擇標準混合在一起(並且不,他們並不總是產生相同的結果)。 – Duncan 2010-04-16 00:03:21