iOS简单的多表查询以及SQLite注意点
2017-02-17 22:45
190 查看
多表查询
假如有两张表:表A:
表B:
这里我们是通过相同列名departmentNumber来进行条件查询相关信息:
1.内连接查询:返回的结果只有满足departmentNumber相等的结果
sql语句(有两种方式):
-->select a.name, b.name from A as a, B as b wherea.departmentNumber = b.departmentNumber
-->select a.name, b.name from A as a inner join B as b on a.departmentNumber = b.departmentNumber
查询结果:
2.左外链接查询:返回的结果只和左边的表有关(这里假定A是左边的表),右边表如果没有对应值,就为NULL
sql语句:
-->select a.name, b.name from A as a left outer join B as b on a.departmentNumber= b.departmentNumber
返回结果:
3.右外链接查询:返回的结果只和右边的表有关(这里假定B是右表),那么如果左边表是没有对应值,就为NULL
sql语句:
-->select a.name, b.name from A as a right OUTER join B as b on a.departmentNumber = b.departmentNumber
返回结果:
4.完全外链接查询:想获取两个表所有信息,如果两个表内没有对应值的就用NULL表示
sql语句:
-->select a.name, b.name from B as b full OUTER join A as a on a.departmentNumber = b.departmentNumber
返回结果:
注意点:在sqlite中是不支持右外连接和完全外链接的,但是可以通过以下方式来进行连接:
1.sqlite中的右外连接:将左外连接的表换个顺序就可以了
-->select a.name, b.name from B as B left outer join A as A on a.departmentNumber = b.departmentNumber
返回结果:
2.sqlite中的完全外链接:用关键字union将两句连接起来进行合并
-->select a.name, b.name from B as b left OUTER A as a ona.departmentNumber = b.departmentNumber
UNION
select a.name, b.namefrom A as a left outer B as b on a.departmentNumber = b.departmentNumber
返回结果:
转自:http://www.jianshu.com/p/5c53c36268a8
相关文章推荐
- ios平台中glsl中shadow2DProjEXT函数的简单说明以及变换矩阵的小注意点
- 【iOS开发-104】SQLite使用:注意查询时分步写while会出现死循环
- IOS sqlite简单使用 以及为什么sqlite3_open无法创建数据库的原因
- ios开发中类方法以及self的注意点
- 【iOS-Cocos2d游戏开发之二十】精灵的基础知识点总汇(位图操作/贴图更换/重排z轴等)以及利用CCSprite与CCLayerColor制作简单遮盖层!
- 【iOS-Cocos2d游戏开发之二十】精灵的基础知识点总汇(位图操作/贴图更换/重排z轴等)以及利用CCSprite与CCLayerColor制作简单遮盖层!
- ios简单使用sqlite3
- CMOS与TTL的一些简单区别以及一些注意事项
- iOS 使用sqlite3 建表,删除表,添加记录, 查询记录
- iOS-简单sqlite使用
- iOS程序版本判断,以及查询接口官方介绍
- 简单Sqlite 查询
- eclipse中简单的数据库查询实例以及Quantum插件简介
- oracle数据库之数据的增删改以及简单的单表查询
- ios简单sqlite使用
- ios开发中类方法以及self的注意点
- ios简单使用sqlite3
- HQL多表查询以及结果对象
- ADO.NET 用windows方式连接数据库以及简单的增,删,改,查询操作
- 提升sqlite性能以及事务的简单理解