web2py连接来自不同数据库的表

时间:2017-08-28 19:10:49

标签: database join web2py

寻求帮助。 我使用web2py,我的应用程序需要多个数据库。 例如两个数据库:

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)不起作用

1 个答案:

答案 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

但这会花费你更多的处理时间。