如何从第二个值可以为none的join、left join中获取对

2024-10-03 02:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据库里有两个模型

class Base(object):
    def __tablename__(self):
        return self.__name__.lower()

    id = Column(Integer, primary_key=True, nullable=False)
    utc_time = Column(BigInteger, default=utc_time, onupdate=utc_time)


class EntityModel(Base):
    __tablename__ = 'entities'
    town_id = Column(Integer, ForeignKey('towns.id', ondelete='CASCADE'), nullable=False)
    type = Column(Integer, nullable=False)
    level = Column(Integer, nullable=False, default=Level.LEVEL_ONE)
    energy = Column(Float, nullable=False, default=0)
    x = Column(Integer, nullable=False)
    y = Column(Integer, nullable=False)

class CommandModel(Base):
    __tablename__ = 'commands'
    entity_id = Column(Integer, ForeignKey('entities.id', ondelete='CASCADE'), nullable=False)
    command = Column(Integer, nullable=False)
    started_at = Column(BigInteger, nullable=False)
    ends_at = Column(BigInteger, nullable=False)
    type = Column(Integer, default=None)

实体可以有一个或无命令。如何获取实体、命令对(实体可以在没有命令的情况下存在)

我试过了,但没用

for e, c in session.query(EntityModel, CommandModel).join(CommandModel).filter(EntityModel.town_id == 100).all():

Tags: 实体idfalsedefaultbasetimecolumninteger