[SQL] 어떻게 SqlAlchem y의에서 "왼쪽 외부 조인"를 실행합니다
SQL어떻게 SqlAlchem y의에서 "왼쪽 외부 조인"를 실행합니다
나는이 쿼리를 실행해야합니다 ::
select field11, field12
from Table_1 t1
left outer join Table_2 t2 ON t2.tbl1_id = t1.tbl1_id
where t2.tbl2_id is null
파이썬에서 이러한 클래스를했다 :
class Table1(Base):
....
class Table2(Base):
table_id = Column(
Integer,
ForeignKey('Table1.id', ondelete='CASCADE'),
)
....
방법은 아래에서 위까지받을 수 있나요?
해결법
-
==============================
1.
q = session.query(Table1.field1, Table1.field2)\ .outerjoin(Table2)\ # use in case you have relationship defined # .outerjoin(Table2, Table1.id == Table2.table_id)\ # use if you do not have relationship defined .filter(Table2.tbl2_id == None)
FIELD1 및 FIELD2는 표 1에서 것을, 그리고 당신이 관계를 정의하는 것이 가정을 수행해야합니다 :
class Table2(Base): # ... table1 = relationship(Table1, backref="table2s")
-
==============================
2.당신은 또한 사용 SQLAlchemy의 핵심을 만 수행 할 수 있습니다
당신은 또한 사용 SQLAlchemy의 핵심을 만 수행 할 수 있습니다
session.execute( select(['field11', 'field12']) .select_from( Table1.outerjoin(Table2, Table1.tbl1_id == Table2.tbl1_id)) .where(Table2.tbl2_id.is_(None)) )
PS의 .outerjoin (테이블 조건 () = TRUE isouter 테이블 조건) .join 동일하다.
from https://stackoverflow.com/questions/26142304/how-to-execute-left-outer-join-in-sqlalchemy by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오라클 행의 여러 열에서 피벗을 사용하여 (0) | 2020.05.10 |
---|---|
[SQL] 오라클 - 만드는 방법은 FAST의 REFRESH와보기를 구체화하고 JOINS (0) | 2020.05.10 |
[SQL] 나는 테이블의 열을 계산하려면 어떻게 (0) | 2020.05.10 |
[SQL] 오라클에서 OVER 절 (0) | 2020.05.10 |
[SQL] 별명을 가지고 있어야에서 하위 쿼리 (0) | 2020.05.10 |