db1 = DAL('sqlite://first.sqlite')
db2 = DAL('sqlite://second.sqlite')
表格:
db1.define_table('table1',
Field('id',requires=IS_NOT_EMPTY()),
Field('pid',type='integer'),
Field('title',type='string'),
)
和
db2.define_table('table2',
Field('id',requires=IS_NOT_EMPTY()),
Field('pid',type='integer'),
Field('data',type='string'),
)
如何执行sqlite join,如:
sql ="SELECT db1.id, db1.title,db2.data FROM db1.table1 INNER JOIN db2.table2 ON db2.table2.pid == db1.table1.pid"
db1.executesql(sql)不起作用
答案 0 :(得分:0)
无法与来自不同DAL实例的表进行连接。 此外,每个DAL实例只能连接到一个数据库。
使用两个DAL实例,您可以执行两个单独的选择,并使用运算符|以编程方式组合它们或者&结果为R
>>> print rows1
person.name
Max
Tim
>>> print rows2
person.name
John
Tim
>>> rows3 = rows1 & rows2
>>> print rows3
name
Tim
但这会花费你更多的处理时间。