To: CCEO()
可不可以把你的理解讲一下?

解决方案 »

  1.   


    关于用法: SQL SERVER的OnlineBook中都有
    关于理论: 离散数学
      

  2.   

    用powerbuilder建数据窗口,查看sql格式,可以发现多种数据库的连接方式,
      

  3.   

    看了理论,在找个sql自带的nothwind数据库练习一下就知道了,比较一下left, right, full out join 等..
      

  4.   

    我个人认为用法没什么好说的,SQLServer自带的丛书讲的非常明白。
    如果想了解如何高效的使用JOIN操作,就必须弄明白JOIN运算是怎么实现的,
    数据库原理好像讲过,先做笛卡儿乘积,然后根据条件选择符合的记录。但是我个人认为考虑到优化的效果,在具体实现时,完全可以先基于条件选择,然后做笛卡儿乘积。另外有人问过一个问题,ON操作符后面的条件是从左向右的执行还是从右向左执行的呢,(有人讨论过,好像结论是从左向右,个人认为这好像不太重要,查询优化的时候数据库自身会判断的)。
      

  5.   

    Please seehttp://expert.csdn.net/Expert/topic/1269/1269131.xml?temp=6.028384E-02Which One is faster?
      

  6.   

    也請看一下:
    http://expert.csdn.net/Expert/topic/1273/1273202.xml?temp=.3176691
    看哪种方法快,鎖定記錄少
      

  7.   

    INNER JOIN
    对于 T1 的每一行 R1,生成的连接表都有一行对应 T2 中的 每一个满足和 R1 的连接条件的行. LEFT OUTER JOIN
    首先,执行一次 INNER JOIN.然后,为 T1 里那些和 T2 里任何一行都不满足连接条件的行返回一个连接行, 同时该连接行里对应 T2 的列用 NULL 补齐.因此, 生成的连接表里无条件地包含来自 T1 里的每一行至少 一个副本. RIGHT OUTER JOIN
    首先,执行一次 INNER JOIN.然后,为 T2 里那些和 T1 里任何一行都不满足连接条件的行返回一个连接行, 同时该连接行里对应 T1 的列用 NULL 补齐.因此, 生成的连接表里无条件地包含来自 T2 里的每一行. FULL OUTER JOIN
    首先,执行一次 INNER JOIN.然后,为 T1 里那些和 T2 里任何一行都不满足连接条件的行返回一个连接行, 同时该连接行里对应 T2 的列用 NULL 补齐. 同样,为 T2 里那些和 T1 里的任何行都不满足连接条件的 行返回一个连接行,该行里对应 T1 的列用 NULL 补齐.