2013-08-01 3 views
2

Je voudrais faire quelque chose de similaire à ce qui suit:Est-il possible d'interroger deux tables à partir de deux bases de données distinctes dans Android?

Cursor mCursor = db.rawQuery("SELECT * FROM Table1, Table2 " + 
          "WHERE Table1.id = Table2.id_table1 " + 
          "GROUP BY Table1.data1", null); 

Est-il possible de faire les mêmes en utilisant les tables présentes sur deux bases de données différentes?

+0

Pourquoi avez-vous besoin de deux bases de données différentes ...? Et je ne crois pas que ce soit possible. – TronicZomB

+0

@TronicZomB: Essayer d'écrire un _sync manager_ qui synchronisera quelques colonnes d'une base de données à une autre. Les deux bases de données sont maintenues par deux applications distinctes. Suggestion sur toute autre meilleure approche est également la bienvenue! – vinix

Répondre

2

Juste attach l'autre base de données d'abord:

db.execSQL("ATTACH '/path/to/other.db' AS otherDB"); 
db.rawQuery("SELECT * FROM Table1, otherDB.Table2 " + 
      "WHERE Table1.id = otherDB.Table2.id_table1 " + 
      "GROUP BY Table1.data1", null); 
+0

Comment est-il possible d'obtenir le chemin physique de db d'une autre application? J'ai fondamentalement besoin d'attacher mediastore db à mon application locale db. Mais, sur l'appareil, comment puis-je obtenir le chemin de mediastore db dans Android? – vinix

+1

Android ne vous permet pas d'accéder directement aux données d'autres applications. –

Questions connexes