[Sqlite3] 多個Sqlite資料庫結合使用
有時候因為常常要作些統計資料, 會需要好幾個Sqlite database, 而常常有時候要的條件比較複雜
可能因為幾個db彼此之間必須要互相對應, 就要開來開去
查了一下其實Sqlite可以做multiple database connection - ATTACH
利用ATTACH把資料先rename成其他名稱, 之後下SQL就可以直接用,
例如rename成d1, 要存取d1的table就下d1.table_name
其實原本是四句SQL要I/O四次, 變成可以合體成一句, 這應該是只有I/O兩次
這樣比較好存成.sql檔案, 在linux下也比較方便呼叫跟使用
可能因為幾個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下也比較方便呼叫跟使用
留言
張貼留言