SQL Join 认识误区

最近在学SQL Server数据库程序,以前也学过一些内容,但是没有提高自己的应用水平,停留在理论知识层次,而且有很多概念都不懂。

 

首先看看下面的的SQL 语句

SELECT * FROM A INNER JOIN B ON A.Id = B.ParentId

 

问一个问题,返回的结果数量是大概是多少呢

A。大于A的行数 B.等于A的行数 C。小于A的行数  D。小于或者等于A的行数

 

可能按照Join的概念来说,囫囵吞枣说是符合A的记录。那么可能的选择就会是D。  最近在实际中应用的时候发现,这个是自己的认识误区。

实际上A,B,C,D 都有可能是正确的结果。比如说A与B的关系是1对多的关系,那么返回的结果记录行数就会大于A的行数!

 

导致这种认识误区的是自己没有实践过,没有感性认识。所以才会导致上面的答案只选D的情况。

posted @ 2012-08-09 21:30  richardzeng  阅读(164)  评论(0编辑  收藏  举报