I have three tables in one to many relationships like below and Recording Session has many Videos which has many images . I would like to find out all the images of a particular recording session.
class RecordingSession(db.Model):
__tablename__ = 'recording_session'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
recording_id = db.Column(db.String(50), unique= True , nullable=False)
class VideoClip(db.Model):
__tablename__ = 'video_clip'
id = db.Column(db.Integer, primary_key=True , autoincrement=True)
video_clip_id = db.Column(db.String(50), unique = True , primary_key=True)
recording_id = db.Column(db.String(50), db.ForeignKey('recording_session.recording_id')) rsession = db.relationship('RecordingSession', backref='video_clip', lazy='joined')
class Images(db.Model):
__tablename__ = 'images'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
image_id = db.Column(db.String(50), primary_key=True, unique=True)
video_clip_id = db.Column(db.String(50), db.ForeignKey('video_clip.video_clip_id',ondelete='CASCADE'))
videoclips = db.relationship('VideoClip', backref='images', lazy='joined')
I know how to join two tables like below but is it possible to join and filter using single query . I am using 1.3 version of sql alchemy.
db.session.query(Images).join(VideoClip).filter(Images.video_clip_id = 'vcid')