join :取两个表的合集;

left join:左表的数据全部保留,然后增加右表与左表条件匹配的记录。如下

select cc.* from cloud_groups as cg  left join cloud_contacts as cc  on  cg.ou=cc.departmentNumber order by cast(cg.sort as int),cast(cc.sort as int)      //先以部门排序,再以员工进行排序

效果:

(1)cloud_groups  的内的数据全部保留

(2)增加 cloud_contacts 表中 cg.ou=cc.departmentNumber 的记录

right join: 与left join的效果正恰相反。右表的数据全部保留,然后增加与相应条件匹配的记录。

示例:

//根据部门编码获取指定部门下员工的数量
-(NSString *)getStaffCount:(NSString *) code
{
NSString *strSql = [[NSString alloc]initWithFormat:@" select count(*) from(select * from cloud_contacts as cc left join cloud_groups as cg on cg.ou=cc.departmentNumber) where code like'%%%@%%'",code];
NSString *staffCount=nil;
if([mysqlite openDatabase:@"ucab_db.db"])
{
staffCount = [[mysqlite selectintBySQL:strSql] objectAtIndex:];
[mysqlite closeDatabase];
}
if (nil!=staffCount)
{
return staffCount;
}
else return @"";
}

关键字:on 是两个表连接查询时的条件,用于筛选笛卡尔积得出临时表。where 是对对临时表进行再次查询!

连接查询简析 join 、 left join 、 right join的更多相关文章

  1. WebGIS中基于AGS的画圆查询简析以及通过Polygon来构造圆的算法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 某个项目需求中需要在前端进行画圆查询,将圆范围上的多边形要素 ...

  2. mysql 连接查询 join

    本文用到的表 CREATE TABLE `cls` ( `cls_id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, PRIMARY KEY (`cls ...

  3. Sql语句优化-查询两表不同行NOT IN、NOT EXISTS、连接查询Left Join

    在实际开发中,我们往往需要比较两个或多个表数据的差别,比较那些数据相同那些数据不相同,这时我们有一下三种方法可以使用:1. IN或NOT IN,2. EXIST或NOTEXIST,3.使用连接查询(i ...

  4. Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页

    GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group ...

  5. SQL——连接查询

    以mysql为例: 新建两张表table1和table2 CREATE TABLE `table1` ( `id` ) NOT NULL auto_increment, `name` ) defaul ...

  6. mysql(4)—— 表连接查询与where后使用子查询的性能分析。

    子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表 ...

  7. MySQL多表查询 三表查询 连接查询的套路

    多表查询 * 当我们的一条记录 分散不同的表中时,就需要进行多表查询 例如 一对一 一对多 多对多 1.笛卡尔积查询 意思是将两个表中的所有数据 全部关联在一起   例如 a表 有2条 b表有3条   ...

  8. HQL的内连接查询

    /** * HQL的内连接查询 * String hql="from Customer c inner join fetch c.linkmans"; */ @Test publi ...

  9. 深入学习之mysql(五)连接查询

    深入学习Mysql(五)连接查询 1.准备数据库: CREATE DATABASE IF NOT EXISTS `db_book2` DEFAULT CHARACTER SET UTF8; USE ` ...

随机推荐

  1. memcache 键名的命名规则以及和memcached的区别

    2014年3月27日 07:47:46 Keys---- Data stored by memcached is identified with the help of a key. A keyis ...

  2. SNMP中MIB2所有主要节点

    系统组:system组包含以下对象集(.1.3.6.1.2.1.1): 对象名:sysDescr(1) OID:system.1 对象类型:DisplayString[255] 访问模式:只读 描述: ...

  3. H5页面调用手机打电话功能

    <head>里面加上: <meta name="format-detection" content="telephone=yes"/> ...

  4. wpf 如果列表加载超多数据变的卡顿时,使用VirtualizingStackPanel

    如果列表加载超多数据变的卡顿时 <ListBox > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Virt ...

  5. prometheus的平台侧和应用侧结合,实现应用的metrics的抓取

    这个细节,迷惑了我一段时间,前面也写过一篇blog,描述过这个问题. 今天看到一种更好的解决方法. 记录一下. prometheus在k8s集群里,抓取应用的metrics. 是需要平台侧和应用侧相互 ...

  6. Win7建立FTP站点

    Win7建立FTP站点 1.到控制面板---程序---打开或关闭windows功能,列表内找到 Internet信息服务(展开)---选中FTP的三个项: 2.到控制面板---系统和安全---管理工具 ...

  7. 黑马程序员_java基础笔记(13)...类加载器和代理

    —————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— 1,类加载器.2,代理. 1,类加载器. Java虚拟机中可以安装多个类加载器,系 ...

  8. win7下再装Ubuntu双系统

    一.UltraISO制作U盘启动盘 1.1打开 UltraISO,单机“文件”,选择“打开”. 1.2然后单击“启动”,选择“写入硬盘映像”. 二.装Ubuntu 前面省略,直接到安装类型(我的安装好 ...

  9. canvas-圆弧形可拖动进度条

    一.效果如下: See the Pen XRmNRK by pangyongsheng (@pangyongsheng) on CodePen. 链接dome 二. 本文是实现可拖动滑块实现的基本思路 ...

  10. 网页图表Highcharts实践教程之图表区

    网页图表Highcharts实践教程之图表区 网页图表Highcharts图表区 图表区是图表的基本区域.所有的数据和图形都是绘制在图表区中.从图形绘制范围来分,图表区域分为外层图表区和绘图区.本章将 ...