gpt4 book ai didi

java - Android Sqlite 内连接

转载 作者:行者123 更新时间:2023-12-01 09:56:26 25 4
gpt4 key购买 nike

我正在努力得到这个

enter image description here

我有 2 个表 - 单词表(ID、名称、翻译)和 WordSynonym 表(synonym_id1、synonym_id2)。

我的所有单词都会进入第一个表,当我需要时,我会通过第二个表在单词之间创建连接。

现在我需要制定方法来按特定 ID 获取所有同义词。

为此我已经尝试过了。

@Override
public ArrayList<Word> getAllSynonymsByWord(int id) {
ArrayList<Word> synonyms = new ArrayList<>();
Cursor c = database.rawQuery("select id, word, translation from " + WordsTable.TABLE_NAME + " inner join " + WordSynonymTable.TABLE_NAME + " on " + WordSynonymTable.COLUMN_WORD_ID + " = " + id, null);
c.moveToFirst();
while (!c.isAfterLast()) {
Word s = new Word();
s.setId(c.getInt(0));
s.setName(c.getString(1));
s.setTranslation(c.getString(2));
synonyms.add(s);
c.moveToNext();
}
c.close();
return synonyms;
}

参数ID是我需要的单词的id(图中id=1)例如,我想返回 id = 2 和 id = 3 的单词但这不能正常工作。

我应该改变什么?如果您需要代码注释的另一部分,我会添加。

最佳答案

您需要加入单词表两次:

SELECT W2.ID,
W2.Name,
W2.Translation
FROM Words
JOIN WordSynonym ON Words.ID = WordSynonym.Synonym_ID1
JOIN Words AS W2 ON WordSynonym.Synonym_ID2 = W2.ID
WHERE Words.ID = ?;

关于java - Android Sqlite 内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com