파이썬에서 SQLObject ORM을 사용하고 있는데, 같은 방법으로 행 객체의 생성자를 반복 할 수 있기를 원하지만 Table.select(...)
이 메서드 호출을 통해 얻을 수있는 것은 너무 제한적입니다. 심지어 filter()
을 사용합니다. 내가 할 수있는 거기에서사용자 정의 SQLObject Select 호출을 통해 생성기를 가져올 수 있습니까?
columns = [TableB.q.column_x, TableA.q.id] +
[getattr(TableA.q, col.name) for col in TableA.sqlmeta.columnList]
inner_join = sqlbuilder.INNERJOINOn(
table1=TableA,
table2=TableB,
on_condition=(TableA.column_y==TableB.column_z),
)
select = sqlbuilder.sqlbuilder.Select(items=columns, join=inner_join)
:이 정확한 쿼리를 얻을 수 SQLBuilder을 사용하는 방법을 알고
SELECT TableB.column_x, TableA.*
FROM TableA
INNER JOIN TableB
ON TableA.column_y = TableB.column_z;
:이 방식으로 SQL 쿼리에서 얻을 것처럼
나는 같은 싶어 이 쿼리 실행 :conn = TableA._connection
rows = conn.queryAll(conn.sqlrepr(select))
을하지만이 튜플의 목록을 반환, 하지 상응하는 발전기는 Table.select(...).filter(...)
이것은 "restore_defaults는"엔드 포인트, 내가 되돌려 야의 일부입니다 (기본 및 만 기본) TableA
의 행을 수행하여 얻을 것 나는 어떤 볼 필요로 기본 행은 여전히 존재하며 사용자가 작성한 추가 사용자 정의 행을 덮어 쓰거나 삭제하지 않고 모든 기본 행을 TableA
에 삽입하기 전에 행을 삭제합니다. 즉, 이것은 특정 요구 사항이며 진정으로 위의 SQL 쿼리에서 증강 된 테이블을 사용해야 할 필요가 있습니다.
반환 된 튜플을 사용하여 (심지어 임시 임시 표기를 사용하여) 이러한 검사를 수행하고 사전을 업데이트 할 수 있다는 것을 알고 있습니다. 그러나 SQLObject에서 직접 상호 작용을 얻는 더 좋은 방법은 보통 select()
요구?
Django 모델에서 "주석"기능과 같은 것을 찾고 있지만 SQLObject에 이러한 기능이 있다고 생각하지 않습니다. 따라서 많은 테이블의 데이터를 원하면 튜플 만 선택할 수 있습니다. –