2016-07-25 47 views
0

我在Android的SQLite数据库,例如:SQLite数据库Android开所有列值到字符串数组

表1人:

  • 列1:ID
  • 列2:命名
  • 柱3:朋友

表2朋友:

  • 列1:ID
  • 列2:allFriends

的ID是两个表中的相同,在表1的id == ID在表2 我想从特定表2得到的所有值通过id列“allFriends”,并将列中的所有字符串值插入到String数组/列表中。

+1

似乎很简单,让你尝试过什么? – Roope

回答

1

试试这个,

public ArrayList<String> getAllFriends(int id) { 
    ArrayList<String> friendsNames = new ArrayList<>(); 
    SQLiteDatabase sqLiteDatabase = null; 
    try { 
     String query = "select * from person P join friends F on F.id = P.id where P.id = " + id; 
     Cursor cursor = sqLiteDatabase.rawQuery(query, null); 
     while (cursor.moveToNext()) { 
      friendsNames.add(cursor.getString(cursor.getColumnIndex("allFriends"))); 
     } 
    }catch(Exception ex){ 
     Log.e(TAG,"Erro in geting friends "+ex.toString()); 
    } 
    return friendsNames; 
    } 
+0

什么是P人和朋友F? –

+0

它的别名。请阅读http://www.w3schools.com/sql/sql_alias.asp –

+0

应始终避免使用SELECT *。改用字段列表。 –

0

你的SQL查询:

SELECT allFriends FROM friends where id == Id_from_person 

Id_from_person - 你想从数据库到收到谁的朋友的人的ID。
用于执行查询读取this

+0

Ofc。这不是复制粘贴的答案。你需要自己解决一下你的问题。 –

相关问题