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) \
'python' 카테고리의 다른 글
[python] 테스크 코드 실행 - tox 이용 (0) | 2018.02.23 |
---|---|
[python] sql_alchemy 에서 join을 사용할 때 유의해야 할 사항 - sql_alchemy에 대한 이해 (0) | 2018.02.22 |
[python] sql_alchemy sql 출력하기 (sql 디버그) (0) | 2018.02.21 |
[flask] AssertionError: View function mapping is overwriting an existing endpoint function 해결하기 (0) | 2018.02.20 |
[python] str과 repr 비교 (0) | 2018.01.23 |