[sql_alchemy] 3개의 테이블 조인 (join three tables) 예제
python의 sql_alchemy에서 3개의 테이블을 조인하고 특정 사람의 권한을 보고 싶은 쿼리가 있다.
select role.role
from
(user join roleuser on user.id = roleuser.user_id)
left join role role on roleuser.role_id = role.id
where user.userid = 'sma'
python의 sql_alchemy는 다음과 같이 코딩한다.
instance = session.query(Role.role)\
.join(RoleUser, User.id == RoleUser.user_id) \
.outerjoin(Role, RoleUser.role_id == Role.id) \
.filter(User.userid == userid)
조인된 다른 테이블을 보려면 다음과 같다.
instance = session.query(Role.role)\
.join(RoleUser, User.id == RoleUser.user_id) \
.outerjoin(Role, RoleUser.role_id == Role.id) \
.filter(User.userid == userid) \
.add_entity(RoleUser) \
.add_entity(User) \