下面这个查询在Android的SQLite是返回同一列的倍数。例如,它返回“meet_id”(3)次。第一个(2)“meet_id”用正确的数字是正确的,而第三个是空的。我的“athlete_id”和“event_id”也是如此。我假定这是因为我的左手的加入,因为第三个表是空的,截至目前,但不应该只是如果返回一个列每列属性(1次相遇列多行?):的Android SQLite的查询返回多个相同的列
Cursor cursorTemp = db.rawQuery("SELECT * FROM " + TABLE_MEETS + " LEFT JOIN " + TABLE_MEETS_ATHLETES +
" ON " + TABLE_MEETS + "." + COL_MEET_ID + " = " + TABLE_MEETS_ATHLETES + "." + COL_MEET_ID +
" LEFT JOIN " + TABLE_MEETS_ATHLETES_SPLITS + " ON " + TABLE_MEETS_ATHLETES + "." + COL_MEET_ID +
" = " + TABLE_MEETS_ATHLETES_SPLITS + "." + COL_MEET_ID + " AND " + TABLE_MEETS_ATHLETES +
"." + COL_ATHLETE_ID + " = " + TABLE_MEETS_ATHLETES_SPLITS + "." + COL_ATHLETE_ID + " AND " +
TABLE_MEETS_ATHLETES + "." + COL_EVENT_ID + " = " + TABLE_MEETS_ATHLETES_SPLITS + "." +
COL_EVENT_ID + " WHERE " + TABLE_MEETS + "." + COL_MEET_ID + " = ?", new String[]{String.valueOf(i)});
我理解这有点混乱,但我喜欢多个原始查询
而且,满足ID是在所述第一表和一个主键和复合在第二第三
这是愚蠢的,这不会发生在其他DBA的。我不明白为什么sqlite会这样做,并重复列 –
@BobTheBuilder那不是。你应该**总是**只需要你需要的列。 **要求全部都是愚蠢的('*')。 –
@BobTheBuilder *所有*数据库都以这种方式工作。自动删除这些列的唯一方法是使用USING子句进行连接。 –