0
で親テーブルの属性として、私はSQLAlchemyの中で次のように設定する1対多の関係があります。SQLAlchemyの
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, ForeignKey
Base = declarative_base()
class Status(Base):
__tablename__ = 'status'
name = Column(String(32), primary_key=True, unique=True)
class Chunk(Base):
__tablename__ = 'chunk'
id = Column(Integer, primary_key=True)
taskId = Column(Integer, ForeignKey('task.id'))
status = Column(String(32), ForeignKey('status.name'), default='unassigned')
class Task(Base):
__tablename__ = 'task'
id = Column(Integer, primary_key=True)
Tasks
はChunks
のリストが含まれています。各チャンクは独自のstatus
を持っています。
column_property
またはhybrid_property
〜Task
を追加して、そのタスクのチャンクのステータスセットを戻したいとします。
私はこのようなcolumn_property
を使用することを試みた:
Task.statuses = column_property(
select([func.distinct(Chunk.status)]).\
where(Chunk.taskId == Task.id).\
correlate(Task.__table__)
)
しかし、これは選択帰国複数の値についてのエラーを与える:
sqlalchemy.exc.OperationalError: (OperationalError) (1242, 'Subquery returns more than 1 row')