Android中系统自带数据库文件中的多表联合查询疑问
16lz
2021-01-24
问题是:在Android中实现系统自带数据库文件的多表联合查询,目前只知道使用Cursor进行简单的系统数据库文件操作,虽然可以使用SQLiteDatabase对象对自己的应用中的数据库文件进行较为复杂的数据操作,像多表联合查询之类的。现在的问题是怎样得到系统自带数据库文件的SQLiteDatabase的引用对象。2012-03-02
现发现有一个方法可以基本实现Android表中的基于SQL语言多表查询效果,使用SQLiteDatabase.rawQuery:
sqLiteDatabase = mdb.dbHelper.getReadableDatabase(); Cursor listCursor = sqLiteDatabase.rawQuery("SELECT _id,address,body,type,date,ac from MySms a , (SELECT max(date) maxd,count(address) ac from MySms Group By address) b where a.date = b.maxd order by date desc",null); startManagingCursor(listCursor);
这是对系统短信数据库sms的查询,其中返回了短信ID,号码,短信内容,短信类型,时间及该号码中包含的短信数目。注意,这里能者样查询是因为我把系统的数据库在我的程序中备份了一份(就是语句中的MySms),所以可以使用SQLiteDatabase对象来使用SQL语言的查询。还有就是rawQuery()方法中的ORDER BY 参数是要设置为 null 的。2012-03-04
更多相关文章
- 解Android系统的进程间通信原理(二)----RPC机制
- Android系统设计中存在设计模式分析
- android图形系统详解二:Drawables
- 基于Android(安卓)5.1系统的nfc读卡驱动和上层的调试记录,nfc移植
- Android(安卓)View视图系统分析和Scroller和OverScroller分析
- Android系统布局——android.R.layout详解
- windows系统上安装与使用Android(安卓)NDK r5
- Android(安卓)Display 系统分析
- Android系统架构基本模式解析