关于数据库中select 的关联语法
sql server 上在from后面可以指定表与表的连接条件,他和where中的条件的主要区别在:
1.from .. on .. 主要是用于限制表与表的连接的
注:表之间的连接是这样处理的:首先肯定是做迪卡尔积,然后在此基础上再根据连接条件再处理,最后再根据连接类型作补充(左外连接就补充左表中被过滤的部分,当然他对应的右表是空的;全外连接就分别补充对不上的两个表)。
2.where之后的条件,此时再处理where之后的条件,将不符合的条件的再筛选掉(注意此时的条件里用到的列依然是前面对应好的表中的列,特别是前面对应不上的(如果是外连接)则任何和该对不上的表相关的条件都是false,被过滤掉)
SQL中select的结果集的次序
如果主键为clustered则具有和clustered index一样的功能,能影响单表的select 语句的次序,即自动根据主键排序且输出顺序为排序后的顺序。
有关联的情况:
若为左关联则结果集以左表的自然顺序输出,反之亦然。
若为内关联则以数据少的表的自然顺序为输出顺序(若相等则根据from的次序以左边的顺序为主)。