我试图找到在Android应用程序中使用sqlite数据库在我的两个表上进行简单表连接的最佳方法.是使用CursorJoiner最简单的方法还是有更简单的方法?
我有tableA,tableB和tableC表A和tableB由tableA.Id(PK)= tableB.tableAId(FK)连接表B和tableC由tableB.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
我在网上发现了很多帖子,它们使用db.rawquery()来实现这个查询.但是我也听说rawquery()不如query()安全.因此,为了寻求初学者的最佳实践,我的问题是:
有没有办法使用db.query()而不是db.rawquery()来实现此查询?
提前致谢.
我的数据库中有2个表,例如:Table1: id (PK), data1和Table2: id (PK), id_table1 (FK), data2.我该如何进行这样的查询:
SELECT * FROM Table1, Table2 WHERE Table1.id = Table2.id_table1 
GROUP BY Table1.data1
我正在使用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);
但是第二个arg存在问题 - 它只能使用String,而不是String [](如new String[] {"Table1","Table2}).如何以这种方式从多个表中进行查询?
我试图在我的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);
但是我收到以下错误:
04-29 11:00:58.715  8588 15565 E DatabaseUtils: Writing exception to …我的sqllite数据库中有3个表,其中两个是配置表,另一个是存储数据的主表.现在如何通过连接android中的2个表,如何以及在何处执行连接操作来从主表中检索数据.
任何人都可以指导我.