2 つのテーブルがあり、それぞれから 1 つの列を選択する必要があります。これは、単一のクエリで実行する必要があります。幸いなことに、2 つの列は正しい順序で並べられており、どちらにも同じ数の行が含まれています。これで、ROWID で 2 つのテーブルを JOIN できることがわかりましたが、その比較を行う必要があるため時間がかかります。私の場合は必要ありません...同じ長さの2つの列を連結するには、水平のUNION ALLのようなものが必要です。
SQLite 3 でそのようなことは可能ですか?
ありがとう。
表1:
| timestamp | FIELD1 | FIELD2 | ...
| 12345678 | 000000 | 000000 | ...
| 00154789 | 000000 | 000000 | ...
表 2:
| temperature |
| 1000000000 |
| 2000000000 |
必要な選択出力
| timestamp | temperature |
| 12345678 | 1000000000 |
| 00154789 | 2000000000 |
クエリ:
SELECT timestamp, temperature
FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.rowid = TABLE2.rowid;
私のテストアプリでは、これに約 0.75 秒かかります。2 つの別々の SELECT を実行し、プログラムの後半で出力を結合すると、約 0.4 秒かかりますが、あまり便利ではありません。最速の方法 (~0.23 秒) は、1 つのテーブルに両方の列を含めることですが、同じタイムスタンプを共有する TABLE2 の複数のバージョンがあるため、無駄です。