Joindre des tables de différentes bases de données dans SQLite
Lorsque vous travaillez avec plusieurs bases de données SQLite, il devient nécessaire de joindre des tables dans plusieurs bases de données pour accéder et combiner données. Bien que SQLite ne prenne pas en charge nativement la jointure directe de tables provenant de différentes bases de données, il existe une solution de contournement utilisant la commande ATTACH.
Attachement de bases de données
La commande ATTACH vous permet d'attacher un fichier de base de données externe à la connexion actuelle. Cela vous permet d'accéder aux tables et aux données de la base de données attachée. Pour attacher une base de données, utilisez la syntaxe suivante :
ATTACH DATABASE 'path/to/db.sqlite' AS 'alias';
Remplacez 'path/to/db.sqlite' par le chemin d'accès au fichier de base de données que vous souhaitez attacher, et 'alias' par un alias utilisé pour reportez-vous à la base de données ci-jointe.
Exemple
Considérez un scénario dans lequel vous avez deux SQLite bases de données : 'database1.db' et 'database2.db'. Pour attacher la deuxième base de données :
ATTACH DATABASE 'database2.db' AS 'db2';
Joindre des tables
Après avoir attaché les bases de données, vous pouvez joindre des tables entre des bases de données comme si elles se trouvaient dans la même base de données. Utilisez la syntaxe suivante :
SELECT * FROM db1.table1 AS T1 INNER JOIN db2.table2 AS T2 ON T1.column1 = T2.column2;
Ici, 'db1.table1' et 'db2.table2' sont des tables des bases de données attachées 'db1' et 'db2', respectivement.
Interrogation des bases de données attachées
Pour vérifier les bases de données attachées, utilisez le .databases commande :
.databases
Cela listera toutes les bases de données actuellement attachées et leurs alias.
Limitations
Notez que les noms de base de données « principale » et 'temp' sont réservés respectivement aux bases de données primaire et temporaire. Évitez d'utiliser ces noms pour les bases de données attachées afin d'éviter les conflits.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!