【发布时间】:2017-12-20 15:29:41
【问题描述】:
我正在使用 sql alchemy 部分生成一个查询。我有这个对象非常适合只有一个连接的查询:
**我有一个 ORM 模型,但我不能使用设置的主键,因为它们不是真实的。
q = select( self.selectObj._select
).select_from(
self.joinObj._join
).where(
and_(*self.whereObj._where)
).group_by(
*self.selectObj._groupby
).order_by(
self.selectObj._orderby
).limit(
self.selectObj._limit
).having(
self.selectObj._having
)
我有这个方法来生成连接:
def get_joins(self, first, leftTable, rightTable, leftTableColumn, rightTableColumn, outer):
if first:
self._join = join(leftTable, rightTable, leftTableColumn == rightTableColumn, full=outer)
first = False
else:
self._join = self._join + join(leftTable, rightTable, leftTableColumn == rightTableColumn, full=outer)
我不知道,如何生成、连接、获取等两个或多个连接以在 select_from 子句中使用它。有什么想法吗?
提前非常感谢:)
from中的最终结果应该是这样的:
SELECT a.dev, b.asha, c.unk
FROM a
FULL OUTER JOIN b ON a.dev = b.devicb
FULL OUTER JOIN c ON a.dev = c.devicc
WHERE
a.cust = 'SNTC' AND
b.cust = 'SNTC' AND
c.cust = 'SNTC' AND
a.invent = '10' AND
b.invent = '10' AND
c.invent = '10'
【问题讨论】:
-
严格来说,你不能拥有没有主键的 ORM 模型,无论它们是否真实。看来您正在使用核心。
-
是的,我在 ORM 中有主键,但映射不正确
-
@IljaEverilä 纠正了这个问题,抱歉。你是什么意思看起来你正在使用核心。?
标签: python postgresql sqlalchemy flask-sqlalchemy postgresql-9.1