相关疑难解决方法(0)

在android中使用sqlite连接表的最佳方法

我试图找到在Android应用程序中使用sqlite数据库在我的两个表上进行简单表连接的最佳方法.是使用CursorJoiner最简单的方法还是有更简单的方法?

java sqlite android join cursor

23
推荐指数
1
解决办法
2万
查看次数

Android SQLite使用db.query()进行JOIN而不是rawquery()

我有tableA,tableB和tableC表A和tableB由tableA.Id(PK)= tableB.tableAId(FK)连接表B和tableC由ta​​bleB.Id(PK)= tableC.tableBId(FK)连接

我希望能够这样做:

SELECT c.ALL from tableC c
INNER JOIN tableB b on c.tableBId = b.Id
INNER JOIN tableA a on b.tableAId = a.Id
WHERE a.Id = 108
Run Code Online (Sandbox Code Playgroud)

我在网上发现了很多帖子,它们使用db.rawquery()来实现这个查询.但是我也听说rawquery()不如query()安全.因此,为了寻求初学者的最佳实践,我的问题是:

有没有办法使用db.query()而不是db.rawquery()来实现此查询?

提前致谢.

sqlite android

14
推荐指数
2
解决办法
2万
查看次数

使用SQLiteDatabase从多个表中查询SQLite

我的数据库中有2个表,例如:Table1: id (PK), data1Table2: id (PK), id_table1 (FK), data2.我该如何进行这样的查询:

SELECT * FROM Table1, Table2 WHERE Table1.id = Table2.id_table1 
GROUP BY Table1.data1
Run Code Online (Sandbox Code Playgroud)

我正在使用SQLiteDatabase它的query()方法.

Cursor mCursor = db.query(true, new String[] {"Table1","Table2"}, 
new String[] {"Table1.id","data1", "Table2.id", "id_table1", "data2"},
"Table1.id=Table2.id_table1", null, "Table1.data1", null,null,null);
Run Code Online (Sandbox Code Playgroud)

但是第二个arg存在问题 - 它只能使用String,而不是String [](如new String[] {"Table1","Table2}).如何以这种方式从多个表中进行查询?

sqlite android

12
推荐指数
2
解决办法
5万
查看次数

尝试查询列时删除了无效列

我试图在我的Android应用程序中执行以下查询:

private static final String[] PROJECTION =
            {
                    Data.CONTACT_ID, Data.MIMETYPE,
                    Data.DISPLAY_NAME, Phone.NUMBER,
                    Phone.TYPE, StructuredName.GIVEN_NAME,
                    StructuredName.MIDDLE_NAME,
                    StructuredName.FAMILY_NAME,
                    Data.DELETED
            };


private static final String SELECTION = "(" + Data.MIMETYPE + " = ? AND "
        + Phone.TYPE + " IN (?,?,?)) OR ("
        + Data.MIMETYPE + " IN (?))";


private static final String[] SELECTION_ARGS =
        {
                Phone.CONTENT_ITEM_TYPE,
                String.valueOf(Phone.TYPE_MOBILE),
                String.valueOf(Phone.TYPE_HOME),
                String.valueOf(Phone.TYPE_WORK),
                StructuredName.CONTENT_ITEM_TYPE
        };
final Cursor cursor = mContext.getContentResolver().query(
                Data.CONTENT_URI, PROJECTION, SELECTION, SELECTION_ARGS, Data.CONTACT_ID);
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

04-29 11:00:58.715  8588 15565 E DatabaseUtils: Writing exception to …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

9
推荐指数
1
解决办法
333
查看次数

在android中加入表

我的sqllite数据库中有3个表,其中两个是配置表,另一个是存储数据的主表.现在如何通过连接android中的2个表,如何以及在何处执行连接操作来从主表中检索数据.

任何人都可以指导我.

sqlite android

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×5

sqlite ×5

android-sqlite ×1

cursor ×1

java ×1

join ×1