1. ホーム
  2. sql

[解決済み] SQLite - 異なるデータベースのテーブルをどのように結合しますか?

2022-10-26 05:07:21

質問

私は SQLite データベースを使用するアプリケーションを持っており、すべてがその通りに動作しています。現在、2 つ目の SQLite データベースを必要とする新しい機能を追加している最中ですが、異なるデータベースからテーブルを結合する方法を見つけるのに苦労しています。

もし誰かがこの件で私を助けてくれるなら、私は本当に感謝します!

編集してください。 参照 この質問 をご覧ください。あなたが受け入れられた答えで言及されたように、データベースを添付すると、あなたの言語に適応することができます例です。

解決する方法か。

もし アタッチ アクティブ にあるはずです。 最も ビルドにあるはずです)、別のデータベースファイルを現在の接続に添付することができます。 ATTACH キーワードを使用します。 この場合 は添付できるDBの数を制限しています。 はコンパイル時の設定です ( sqlite_max_attached ) で、現在のデフォルトは10ですが、これもビルドによって異なるかもしれません。 グローバルな上限は125です。

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

接続されているすべてのデータベースを見るには、キーワード

.databases

すると、以下のようになるはずです。

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

データベース名として maintemp は、プライマリデータベースと、テンポラリテーブルやその他のテンポラリデータオブジェクトを保持するためのデータベース用に予約されています。これらのデータベース名は両方ともすべてのデータベース接続に存在し、attachment"に使用すべきではありません。