我想通过rawQuery进行sql连接。
例如,uri如下:
Uri mmsPartUri = Uri.parse("content://mms/part");
Uri mmsInboxUri = Uri.parse("content://mms/inbox");
SQLiteDatabase db = //how to get it?
我认为查询看起来与此类似:
Cursor cursor = db.rawQuery("SELECT mms.part.mid, mms.part.text, mms.inbox.m_id, mms.inbox.date FROM mms.part JOIN mms.inbox
ON mms.part.mid = mms.inbox.m_id", null);
有可能吗?那怎么样?如果没有连接表的其他选项,或者我是否必须使用两个Cursors和CursorJoiner来获得类似的结果?
如果不能在不同的内容提供商之间加入,我很好奇我是否可以像这样做任何rawQueris:
Uri mmsPartUri = Uri.parse("content://mms/part");
SQLiteDatabase db = //how to get it?
Cursor cursor = db.rawQuery("SELECT mms.part.mid, mms.part.text, FROM mms.part", null);
答案 0 :(得分:1)
如何通过rawQuery加入ContentProvider表?
rawQuery()
的客户无法使用ContentProvider
。
您无法访问SQLiteDatabase
,部分原因是不要求 一个SQLite数据库。 ContentProvider
是一个门面。正如Web服务可以由任意数量的数据库技术支持一样,ContentProvider
。
有可能吗?
没有
我是否必须使用两个Cursors和CursorJoiner来获得类似的结果?
CursorJoiner
是否符合您的需求,我不能说。但是,您必须在应用程序中在客户端进行联接。这类似于Web服务,其中Web服务尚未支持的任何联接都需要在客户端手动组装。