下面這個查詢在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子句進行連接。 –