私のiOSプログラムは[A.sqlite3]ファイルをサーバーにダウンロードします。
私のiOSはすでに[b.sqlite3]ファイルをローカルに持っています
A.sqlite3 のテーブルをローカル iOS の b.sqlite3 のテーブルと結合したい。
しかし、テーブルのデータベースが異なるため、テーブルの結合に問題があります。
テーブルを同じデータベースに配置するにはどうすればよいですか?
sqlite ATTACH構文を使用できます。データベース A.sqlite3 にテーブル A があり、データベース B.sqlite3 にテーブル B があると仮定すると、コマンド ラインからの手順は次のようになります。
$ sqlite3 A.sqlite3
sqlite> ATTACH 'B.sqlite3' AS dbB;
sqlite> SELECT a.*,dbB.b.* FROM a,dbB.b WHERE (a.id = dbB.b.id);
ATTACHは、SQL ステートメントで使用できるプレフィックスを追加のデータベース ファイルに与えます。
iPhone アプリでは、前と同じように A.sqlite3 データベースを開き、他の sql コマンドを渡すように sql ATTACH コマンドを sqlite ライブラリに渡します。ATTACH の最初の引数としてフル パス名を指定することを忘れないでください。