127 votes

SQLite - Comment joindre des tables de différentes bases de données?

J'ai une application qui utilise une base de données SQLite et tout fonctionne comme il le devrait. Je suis maintenant dans le processus d'ajout de nouvelles fonctionnalités qui nécessitent une deuxième base de données SQLite, mais je vais avoir un moment difficile de déterminer comment joindre des tables à partir des différentes bases de données.

Si quelqu'un peut m'aider avec celui-ci, j'avais vraiment l'apprécier!

Edit: Voir à cette question pour un exemple de cas que vous pouvez adapter à votre langue quand vous attacher les bases de données comme mentionné dans la accepté de répondre.

169voto

Brian Gideon Points 26683

Bien que je n'ai pas essayé moi-même il semble que vous pouvez joindre un autre fichier de base de données pour la connexion en cours à l'aide de l' ATTACHER mot-clé.

attach database database1.db as db1;
attach database database2.db as db2;

Ensuite, vous devriez être en mesure de faire ce qui suit.

select
  *
from
  db1.SomeTable a
    inner join 
  db2.SomeTable b on b.SomeColumn = a.SomeColumn;

11voto

StanleyD Points 358

Pour moi

attach database database1.db as db1;

ne fonctionne pas Je dois la changer

attach 'database1.db' as db1;

ensuite, vous pouvez voir tous connectés les bases de données avec le mot-clé

.databases

2voto

Yugal Jindle Points 5931

Eh bien, je n'ai pas beaucoup d'expérience avec SQLite, vous avez accès à deux bases de données en une seule requête.

Vous pouvez avoir quelque chose comme :

select name from DB1.table1 as a join DB2.table2 as b where a.age = b.age;

Dans les bases de données comme sql server, vous pouvez accéder à d'autres bases de données de cette façon hiérarchique, cela devrait aussi fonctionner pour SQLite.

Je pense que vous pouvez lancer une instance de sqlite avec plus de 1 bases de données !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X