查询和继承的类
问题描述:
有两个班,我都使用,我想查询以下:查询和继承的类
- 全部来自MyClass的与值项假设从BaseClass的等于1个
- 所有条目这不从项目起源于MyClass的
伪类如下:
Base = declarative_base()
class BaseClass(Base):
__tablename__ = 'base'
id = Column(Integer, primary_key=True)
value = Column(String(256), nullable=False)
type = Column(String(40))
__mapper_args__ = {
'polymorphic_identity': 'base',
'polymorphic_on': type
}
class MyClass(BaseClass):
__tablename__ = 'mine'
id = Column(Integer, ForeignKey('qg.id'), nullable=False,
primary_key=True)
data = Column(Integer, nullable=False)
__mapper_args__ = {
'polymorphic_identity': 'mine'
}
感谢您的任何提示(最好是sqlalchemy,mysql查询也可以)。
答
,帮助我解决办法:
与MySQL
SELECT value FROM base LEFT JOIN mine ON mine.id = base.id WHERE base.type = 'base' OR mine.data = 1;
或使用SQLAlchemy的
q = session.query(Base)
q = q.outerjoin(Mine)
q = q.filter(
or_(Base.type == 'Base',
Mine.id == 1))
result = q.all()