1
我有問題搞清楚如何從兩個不同的方式連接到另一個表的一個表中選擇數據。這裏是我的數據庫模型的圖像: SQLite加入表沒有直接關係
我想從中選擇的表是項目表。我想讓所有項目連接到給定的用戶。
用戶可以直接作爲項目的一部分,不需要成爲組的一部分。所以在這種情況下,用戶到項目的連接是通過project_participants表進行的。 但現在..讓我們說用戶是一個組的一部分,這個組通過group_project表連接到一個項目。現在我該如何讓這個項目出現在我的結果中?
我得到的SQL語句能夠獲得直接連接到用戶的項目。該聲明是這樣的:
Cursor c = database
.rawQuery(
"SELECT p.*, pt.deadline FROM "
+ project_table
+ " p JOIN project_task pt "
+ "ON pt.project_id_foreign = p._id "
+ " JOIN "
+ project_participants_table
+ " pp "
+ "ON pp.project_id_foreign = p._id AND pp.user_id_foreign = ? "
//+ "JOIN "
//+ group_project_table
//+ " gp ON //gp.project_id_foreign = p._id "
//+ "AND EXISTS(SELECT group_id_foreign "
//+ "FROM group_participants "
//+ "WHERE user_id_foreign = ?) ",
new String[] { String.valueOf(userId) });
我註釋掉該行正試圖獲得工作的JOIN IM。 那麼,我如何才能在同一個查詢中爲給定用戶獲取所有獨立項目和組項目?
謝謝您的回答。我會馬上測試 –
看起來像是有效的。非常感謝! :) –