我无法弄清楚这些查询之间的区别。我很确定第一个是一个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