是否可以使用自己的原始SQL编辑或覆盖ORM生成的SQL?或者ORM是否有足够的灵活性来构建几乎可以想象的任何查询?在ORM查询中使用原始SQL
具体来说,这是我试图做的查询,也许它不是很难通过ORM构建,尽管我无法看到任何明显的构建路径。这里的模型:
class AllocationStatus(Base):
STATUS_RESERVED = 1
STATUS_RELEASED = 2
STATUS_CHOICES = (
(STATUS_RESERVED, "Reserved"),
(STATUS_RELEASED, "Released"),
)
__tablename__ = 'allocation_status'
id = Column(Integer, primary_key=True)
allocation_id = Column(Integer, ForeignKey('allocation.id'))
allocation = relationship('Allocation')
status = Column(Integer())
的想法是,为allocation_id
给定的外键ID,我想知道在allocation_status
的最新记录。
为了在原始的SQL语句来实现这一点,下面的查询是我的目标为:
SELECT allocation_status.*
FROM allocation_status
LEFT JOIN allocation_status allocation_status2
ON allocation_status.allocation_id = allocation_status2.allocation_id
AND allocation_status.id < allocation_status2.id
WHERE allocation_status2.id IS NULL;
很好用!谢谢。 – DanH