Tôi đang cố dịch SQL thành SQLAlchemy. Phiên bản SQL của truy vấn tôi muốn là như sau:SQLAlchemy Tham gia với sự cố truy vấn phụ
SELECT * from calendarEventAttendee
JOIN calendarEventAttendanceActual ON calendarEventAttendanceActual.id = calendarEventAttendee.attendanceActualId
LEFT JOIN
(SELECT bill.id, bill.personId, billToEvent.eventId FROM bill JOIN billToEvent ON bill.id = billToEvent.billId) b
ON b.eventId = calendarEventAttendee.eventId AND b.personId = calendarEventAttendee.personId
WHERE b.id is NULL
truy vấn SQLAlchemy của tôi là như sau:
query = db.session.query(CalendarEventAttendee).join(CalendarEventAttendanceActual)
sub_query = db.session.query(Bill, BillToEvent).join(BillToEvent, BillToEvent.billId == Bill.id).subquery()
query = query.outerjoin(sub_query, and_(sub_query.Bill.personId == CalendarEventAttendee.personId, Bill.eventId == CalendarEventAttendee.eventId))
results = query.all()
Tôi nhận được một lỗi AttributeError: 'Alias' object has no attribute 'Bill'
Nếu tôi điều chỉnh truy vấn SQLAlchemy để như sau:
sub_query = db.session.query(Bill, BillToEvent).join(BillToEvent, BillToEvent.billId == Bill.id).subquery()
query = query.outerjoin(sub_query, and_(sub_query.Bill.personId == CalendarEventAttendee.personId, sub_query.BillToEvent.eventId == CalendarEventAttendee.eventId))
results = query.all()
Tôi gặp lỗi AttributeError: Bill
Mọi trợ giúp sẽ được đánh giá cao, cảm ơn!
thế nào bạn ghi đè các cột bạn muốn quay lại? –
@PetrusTheron: Tôi không hiểu câu hỏi? – van