[Sqlite3] 多個Sqlite資料庫結合使用

有時候因為常常要作些統計資料, 會需要好幾個Sqlite database, 而常常有時候要的條件比較複雜

可能因為幾個db彼此之間必須要互相對應, 就要開來開去

查了一下其實Sqlite可以做multiple database connection - ATTACH

利用ATTACH把資料先rename成其他名稱, 之後下SQL就可以直接用,

例如rename成d1, 要存取d1的table就下d1.table_name

ATTACH "$path/A.sqlite" as d1; 
ATTACH "$path/B.sqlite" as d2; 

SELECT people FROM d1.adr And rowid in (SELECT distinct PID FROM d2.history And MethodId IN (10,11,12) And MID IN (SELECT rowid FROM d1.ms And strftime('%Y-%m-%d',RTime) >= '2013-02-14' And strftime('%Y-%m-%d',RTime) <= '2013-02-20')) And Status = 3 ORDER BY RTime desc;

其實原本是四句SQL要I/O四次, 變成可以合體成一句, 這應該是只有I/O兩次

這樣比較好存成.sql檔案, 在linux下也比較方便呼叫跟使用

留言

這個網誌中的熱門文章

[Linux] Linux下查詢硬體記憶體資訊 Memory Information

[Other] Chrome 重新整理所有開啟頁面

[Python] Simple Socket Server