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

可以看看。

sql 里面 join in 的差别,join的用法的更多相关文章

  1. SQL的inner join、left join、right join、full outer join、union、union all

    主题: SQL的inner join.left join.right join.full outer join.union.union all的学习. Table A和Table B表如下所示: 表A ...

  2. 图解SQL的inner join(join)、left join、right join、full outer join、union、union all的区别

    对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...

  3. SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)

    原文链接:http://www.powerxing.com/sql-join/ 总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表( ...

  4. SQL JOIN语法,以及JOIN where 和and区别,还有where和join效率问题。

    语法 join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据. Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 join. 数据库中的表可 ...

  5. SQL Server中的三种Join方式

      1.测试数据准备 参考:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 这篇博客中的实验数据准备.这两篇博客使用了相同的实验数据. 2.SQ ...

  6. JS中Float类型加减乘除 修复 JQ 操作 radio、checkbox 、select LINQ to SQL:Where、Select/Distinct LINQ to SQL Count/Sum/Min/Max/Avg Join

    JS中Float类型加减乘除 修复   MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄Ov ...

  7. 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(一)

    开心一刻 我:嗨,老板娘,有冰红茶没 老板娘:有 我:多少钱一瓶 老板娘:3块 我:给我来一瓶,给,3块 老板娘:来,你的冰红茶 我:玩呐,我要冰红茶,你给我个瓶盖干哈? 老板娘:这是再来一瓶,我家卖 ...

  8. 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(二)

    开心一刻 一头母牛在吃草,突然一头公牛从远处狂奔而来说:“快跑啊!!楼主来了!” 母牛说:“楼主来了关我屁事啊?” 公牛急忙说:“楼主吹牛逼呀!” 母牛大惊,拔腿就跑,边跑边问:“你是公牛你怕什么啊? ...

  9. 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程

    问题背景 对于 MySQL 的 JOIN,不知道大家有没有去想过他的执行流程,亦或有没有怀疑过自己的理解(自信满满的自我认为!):如果大家不知道怎么检验,可以试着回答如下的问题 驱动表的选择 MySQ ...

随机推荐

  1. arcgis engine 基础代码

    1.开始编辑,save feature property,停止编辑 IWorkspace workspace = ((IDataset)pFeatureClass).Workspace;IWorksp ...

  2. 常用freemarker使用文档

    设置价格格式 <#setting number_format = "currency" /> <#assign price = 42 /> ${price} ...

  3. CAP理论(转)

    add by zhj: CAP理论可以简单的理解为一致性,可用性,可分区性,这三者没有办法同时满足.我们使用的关系型数据库,比如MySQL,Postgresql是CA类型, 而Redis,MongoD ...

  4. mybatis like的用法

    oracle数据库: SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 SELECT * FROM user WHERE nam ...

  5. char *p 与char p[] 比较

    看看下面的程序的输出: #include <stdio.h>char *returnStr(){    char *p="hello world!";    retur ...

  6. poj1741 树上的点分治

    题意: 一棵10000个点的树,每条边的长不超过1000,给定一个值k,问距离不超过k的点对数有多少.(多组数据) 输入样例: 5 4 1 2 3 1 3 1 1 4 2 3 5 1 0 0输出样例: ...

  7. 第六周PSP

    [week6]psp  工作周期:10.20-10.27  本周PSP     C类型 C内容 S开始时间 ST结束时间 I中断时间 T净时间(分) 活动 开事后诸葛亮会议 13:00 14:00 0 ...

  8. Servlet调用过程整理

  9. 【随笔】ssh登录时如何直接在参数中加入登录密码

    如同apt-get安装程序时会有-y参数来避免交互输入一样,我也希望在ssh登录时能够直接附加登录密码以避免交互式输入密码这一步,网上找了找,方法很多. 比如直接通过密钥免密码登录,不过需要改动很多, ...

  10. AngularJs自定义指令详解(3) - scope

    我们之所以要定义指令,目的是重用指令.假设有这么一个应用场景:在同一个html里使用了两次my-directive,第一个my-directive要展示的是Hello World,第二个my-dire ...