```rs use rusqlite::{Connection, Result}; fn main() -> Result<()> { // 打开第一个数据库连接 let conn1 = Connection::open("database1.db")?; // 打开第二个数据库连接 let conn2 = Connection::open("database2.db")?; // 在第一个数据库中创建一个表 conn1.execute( "CREATE TABLE IF NOT EXISTS database1_table (id INTEGER PRIMARY KEY, name TEXT)", [], )?; // 在第二个数据库中创建一个表 conn2.execute( "CREATE TABLE IF NOT EXISTS database2_table (id INTEGER PRIMARY KEY, age INTEGER)", [], )?; // 在第一个数据库中插入一些数据 conn1.execute("INSERT INTO database1_table (id, name) VALUES (1, 'John')", [])?; // 在第二个数据库中插入一些数据 conn2.execute("INSERT INTO database2_table (id, age) VALUES (1, 25)", [])?; // 跨数据库查询 let query = "SELECT d1.name, d2.age FROM database1.db.database1_table AS d1 JOIN database2.db.database2_table AS d2 ON d1.id = d2.id"; let mut stmt = conn1.prepare(query)?; let rows = stmt.query_map([], |row| { Ok((row.get::<_, String>(0)?, row.get::<_, i32>(1)?)) })?; for row in rows { let (name, age) = row?; println!("Name: {}, Age: {}", name, age); } Ok(()) } ```