zoukankan      html  css  js  c++  java
  • sql 里面 join in 的差别,join的用法

      1. join 有 left join,right join,inner join 这三种,对两个表做了笛卡尔积,然后再对结果集进行选取操作,选取满足条件的部分为结果。

    • JOIN(内联接): 如果表中有至少一个匹配,则返回行(注释:INNER JOIN 与 JOIN 是相同的。)
    • LEFT JOIN(左外联接:): 即使右表中没有匹配,也从左表返回所有的行(注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。)
    • RIGHT JOIN(右外联接): 即使左表中没有匹配,也从右表返回所有的行(注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。)
    • FULL JOIN(全外联接): 只要其中一个表中存在匹配,就返回行(注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。)

     2.in 是作为一个条件查询来使用的:

      select * from Persons where lastName in ('Adams', 'Carter')

     两个语句的差别,可以使用sql优化器看看它们执行的效率:

    select count(distinct(typ.orig_id)) from sch.NWSTYP typ left outer join sch.NWSATT att on typ.orig_id = att.Orig_id where att.fld_code = '4' and att.fld_val = '1101';
    select count(distinct(typ.orig_id)) from sch.NWSTYP typ,sch.NWSATT att where typ.TYP_CODE = '1501' and typ.orig_id = att.Orig_id and att.fld_code = '4' and att.fld_val = '1101';

    上面第二条Sql 是默认使用了 inner join 来使用的。

    网上查的还有提到exist 

    找了一篇文章:

    http://weblogs.sqlteam.com/mladenp/archive/2007/05/18/60210.aspx

    可以看看。

  • 相关阅读:
    HTTP Status 500
    并发编程的常见约束
    面试之数据库面试题
    HashMap实现原理
    数据结构二叉树知识点总结
    十大经典排序算法详细总结(含JAVA代码实现)
    tensorflow里面共享变量、name_scope, variable_scope等如何理解
    Mxnet学习资源
    测试1
    tensorflow prelu的实现细节
  • 原文地址:https://www.cnblogs.com/edenpans/p/5871005.html
Copyright © 2011-2022 走看看