2016-09-14 30 views
0

我在我的sqlite數據庫中有三個表。SQLite獲取使用3個表格組合的對象列表

Categories: category_id, title 
Words: word_id, title, belongs_to(foreign key, category_id) 
WordImgs: wordImg_id, title, belongs_to(foreign key, words_id) 

我想實現一個方法List getAllCategories。每個類別包含一個單詞列表,每個單詞包含一個wordimages列表。

我用它來加入表格,但因爲有多個值與單個值相關,所以我得到了重複的值。

SELECT categories.title, words.title, wordings.title 
FROM categories 
JOIN words on categories.id = words.belongs_to 
JOIN wordImgs words.id = WordImgs.belongs_to 

Ex。這條語句可以返回

Category,Word,wordImg 
_______________  
Animal Dog Dog1 
Animal Dog Dog2 
Animal Cat Cat1 

我如何可以瀏覽我的光標,我只讓每個不同的類別,意爲我的清單1?

編輯:考慮使用三個嵌套遊標。網上沒有看到太多,有沒有更好的選擇?

+0

檢查此鏈接:http://stackoverflow.com/questions/4957009/how-do-i-join-two-sqlite-tables-in-my-android-application – KishuDroid

+0

「解析」意味着你想要創建你自己的數據結構,並在稍後處理它。什麼數據結構?你需要什麼? –

+0

@CL。我試圖獲得我需要傳入我的主要活動的類別的ArrayList。也許解析不是正確的術語。 – Edward

回答

0

嘗試與此查詢

SELECT 
categories.title as categories_title, 
words.title as words_title, 
wordings.title as wordings_title 
FROM categories 
JOIN words ON categories.id=words.belongs_to 
JOIN wordimgs ON words.id=WordImgs.belongs_to 

你所有三個表中有相同的列名,因此會更好,如果你有別名每個。

如果你需要從三個表中獲取數據更好的使用JOIN的意志給您適當的數據

+0

我不確定在創建表格後該怎麼辦,因爲我必須先爲每個類別創建一個單詞列表。有什麼想法? – Edward

+0

您將從此查詢中獲得** array **數據,在'for'循環中迭代以顯示單詞列表,這是您要查找的內容嗎? – keviveks

+0

我想從類別表中的每一行創建一個類別,而不會有重複的類別。每個類別都有我從查詢中得到的單詞列表。 – Edward

-2

我建議你使用ORM庫,而不是書面查詢自己。我在我的android項目中使用了SugarORM,看看這個鏈接http://satyan.github.io/sugar/index.html

+0

請避免鏈接到外部存儲庫。在這裏過去你的代碼。 – liquide